Я пытаюсь выполнить шифрование AES в Oracle и получаю ошибку ORA-28234: key length too short
.
Однако длина ключа равна 32, и я считаю правильным.
select length('���(Df�%{�O�e�M5���� ���M�') from dual;
Вывод:
32
Я пробовал шифрование AES с тем же ключом в python
и postgres
, и оно работает штраф.
Пожалуйста, предложите.
Oracle AES Анонимный блок:
declare
l_mod number;
enc_val raw(2000);
begin
l_mod:= dbms_crypto.ENCRYPT_AES + dbms_crypto.CHAIN_CBC+ dbms_crypto.AES_CBC_PKCS5;
enc_val := dbms_crypto.encrypt(UTL_I18N.STRING_TO_RAW ('test', 'AL32UTF8'),l_mod,UTL_RAW.CAST_TO_RAW ('���(Df�%{�O�e�M5���� ���M�'));
DBMS_OUTPUT.PUT_LINE('enc_val='||enc_val);
end;
Вывод:
Error report -
ORA-28234: key length too short
ORA-06512: at "SYS.DBMS_CRYPTO_FFI", line 3
ORA-06512: at "SYS.DBMS_CRYPTO", line 13
ORA-06512: at line 6
28234. 00000 - "key length too short"
*Cause: The key specified is too short for the algorithm. DES
requires a key of at least 8 bytes. Triple DES requires a
key of least 16 bytes in two-key mode and 24 bytes in three-key
mode.
*Action: Specify a longer key.