Шифрование колонок MySQL с помощью Hibernate в Spring MVC - PullRequest
0 голосов
/ 22 ноября 2018

Мне нужно зашифровать данные, сохраненные в моей БД.В настоящее время я использую Spring и Hibernate для сохранения данных.

Я просмотрел некоторые материалы и попытался реализовать код, однако это привело к различным общим ошибкам, некоторые материалы не были ориентированы на MySQL и т. Д..

Вот код, который дал мне больше всего

@Column(name="disability_description")
@Length(max=500)
@ColumnTransformer(
        read =  "AES_DECRYPT(disability_description, 'mykey')",
        write = "AES_ENCRYPT(?, 'mykey')"
                )
private String disabilityDescription;

Это, однако, не работает, так как я получаю следующие ошибки

org.hibernate.exception.GenericJDBCException: could not execute statement

java.sql.SQLException: Incorrect string value: '\xF9\x82u\x01\x99\x1A...' for column 'disability_description' at row 1

Пожалуйста, укажитеправильное направление.Я потерян.Также mykey ни на что не указывает, я просто ввел случайное слово.

1 Ответ

0 голосов
/ 22 ноября 2018

Я сомневаюсь, что ваш столбец не имеет типа BINARY:

Mysql Doc:

AES_ENCRYPT () шифрует строку str с помощью ключевой строки key_str и возвращает двоичная строка , содержащая зашифрованный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...