Как сгенерировать результирующую строку длиной 32 байта с помощью функции mariadb AES_ENCRYPTJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сгенерировать результирующую строку длиной 32 байта с помощью функции mariadb AES_ENCRYPT

Сообщение Anonymous »

С помощью Java я генерирую и шифрую строку типа:

Код: Выделить всё

TextEncryptor textEncryptor = org.springframework.security.crypto.encrypt.Encryptors.text(secretKey, salt);
String cryptedString = textEncryptor.encrypt('Original String');
Длина cryptedString составляет 64 байта (например, '2883d27d38b7ff4faf6c115e7d80854fabbe32decd24292f403e5a314a3d00a6').
Она была сгенерирована с помощью AesBytesEncryptor, который сгенерировал длину 32 байта. Строка (например, '(��}8��O�l^}��O��2��$)/@>Z1J= �'), закодированная в шестнадцатеричную строку cryptedString.< /p>
Проблема в том, что я хочу сгенерировать такую ​​строку непосредственно в базе данных Mariadb с помощью функции AES_ENCRYPT.
Но когда я использую пример

Код: Выделить всё

SELECT HEX(AES_ENCRYPT('Original String', 'secretkey', 'abcd1234cdef5678', 'aes-256-cbc'));
возвращаемое значение имеет длину 16 байт (в примере «63235D6C3CC93ED23E889BAE10236CC1»), что означает, что AES_ENCRYPT вернул строку длиной 16 байт, а не 32 байта!
p>
Как заставить функцию AES_ENCRYPT возвращать длину 32 байта Строка?
Я пробовал:

Код: Выделить всё

SELECT AES_ENCRYPT('Original String', 'secretKey', 'abcd1234cdef5678', 'aes-256-cbc');
который вернул (пример):
%äµ ®bY[Ù$[¾#
который имеет длину 16 байт, но Я хотел бы, чтобы он возвращал строку длиной 32 байта, как в моем коде Java

Подробнее здесь: https://stackoverflow.com/questions/792 ... es-encrypt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»