Как сгенерировать результирующую строку длиной 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(' Исходная строка');
Длина cryptedString составляет 64 байта (например, '2883d27d38b7ff4faf6c115e7d80854fabbe32decd24292f403e5a314a3d00a6').
Он был сгенерирован с помощью AesBytesEncryptor, который сгенерировал строку длиной 32 байта (в качестве примера). '(��}8��O��l^}��O��2��$)/@>Z1J= �'), закодированный в шестнадцатеричную строку cryptedString.
Проблема в том, что я хочу сгенерировать такую ​​строку непосредственно в базе данных Mariadb с помощью функции AES_ENCRYPT.
Но когда я использую пример
SELECT HEX(AES_ENCRYPT('Original String', 'secretkey', 'abcd1234cdef5678', 'aes-256-cbc'));
длина возвращаемого значения составляет 16 байт (например, '63235D6C3CC93ED23E889BAE10236CC1'), что означает, что AES_ENCRYPT вернул строка из Длина 16 байт, а не 32 байта !!!
Как заставить функцию AES_ENCRYPT возвращать строку длиной 32 байта?
Я попробовал:
SELECT AES_ENCRYPT('Исходная строка', '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»