DBMS_CRYPTO.ENCRYPT_AES128
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 14/09/2010 - 16:23
Добрый день.
Выполняю код:
DECLARE ENC_VAL RAW (2000); L_KEY RAW (2000); L_KEY_LEN NUMBER := 128; L_MOD NUMBER := DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; BEGIN L_KEY := DBMS_CRYPTO.RANDOMBYTES (L_KEY_LEN); ENC_VAL := DBMS_CRYPTO.ENCRYPT ( UTL_I18N.STRING_TO_RAW ('SECRET', 'AL32UTF8'), L_MOD, L_KEY ); END;
Выдает ошибку ORA-28234 (длина ключа недостаточна)
Увеличение ключа ни к чему не приводит.
Как заставить данный код работать?
Втр, 01/02/2011 - 05:16
#1
С Ораклом я слабо знаком, однако по коду понятно, что ты используешь режим CBC а это предполагает кроме ключа наличие еще и вектора инициализации. Для AES-128 он равен 128 бит. Тут ты его нигде не задаешь. Ошибка наверняка именно в этом.


