–aes128加密
DECLARE
l_src_data VARCHAR2(20) := 'Source Data';
l_type pls_integer := dbms_crypto.encrypt_aes128 + dbms_crypto.pad_pkcs5 + dbms_crypto.chain_cbc;
l_key VARCHAR2(16) := '0123456789123456';
l_encval raw(2000);
BEGIN
l_encval := dbms_crypto.encrypt( src=>utl_i18n.string_to_raw(l_src_data,'AL32UTF8'), typ=>l_type, KEY=>utl_i18n.string_to_raw(l_key,'AL32UTF8'));
dbms_output.put_line(l_encval);
END;
/
SELECT RAWTOHEX(DBMS_CRYPTO.ENCRYPT(UTL_I18N.STRING_TO_RAW('Source Data','AL32UTF8'), 4358, UTL_I18N.STRING_TO_RAW('0123456789123456','AL32UTF8')))
FROM dual;
–aes256加密
DECLARE
l_src_data VARCHAR2(20) := 'Source Data';
l_type pls_integer := dbms_crypto.encrypt_aes256 + dbms_crypto.pad_pkcs5 + dbms_crypto.chain_cbc;
l_key VARCHAR2(32) := '01234567891234560123456789123456';
l_encval raw(2000);
BEGIN
l_encval := dbms_crypto.encrypt( src=>utl_i18n.string_to_raw(l_src_data,'AL32UTF8'), typ=>l_type, KEY=>utl_i18n.string_to_raw(l_key,'AL32UTF8'));
dbms_output.put_line(l_encval);
END;
/
SELECT RAWTOHEX(DBMS_CRYPTO.ENCRYPT(UTL_I18N.STRING_TO_RAW('Source Data','AL32UTF8'), 4360, UTL_I18N.STRING_TO_RAW('01234567891234560123456789123456','AL32UTF8')))
FROM dual;
–解密128
DECLARE
l_src_data raw(100) := hextoraw('2644B3DAB5C617B67423F6CB7F3B91B0');
l_type pls_integer := dbms_crypto.encrypt_aes128 + dbms_crypto.pad_pkcs5 + dbms_crypto.chain_cbc;
l_key VARCHAR2(16) := '0123456789123456';
l_decval raw(200);
BEGIN
l_decval := dbms_crypto.decrypt(src => l_src_data, typ => l_type, KEY => utl_i18n.string_to_raw(l_key, 'AL32UTF8'));
dbms_output.put_line(utl_i18n.raw_to_char(l_decval));
END;
/
SELECT utl_i18n.raw_to_char(DBMS_CRYPTO.decrypt(hextoraw('2644B3DAB5C617B67423F6CB7F3B91B0'), 4358, UTL_I18N.STRING_TO_RAW('0123456789123456','AL32UTF8')))
FROM dual;
–解密256
DECLARE
l_src_data raw(100) := hextoraw('585388D3D97972B7356EAA57BE39018E');
l_type pls_integer := dbms_crypto.encrypt_aes256 + dbms_crypto.pad_pkcs5 + dbms_crypto.chain_cbc;
l_key VARCHAR2(32) := '01234567891234560123456789123456';
l_decval raw(200);
BEGIN
l_decval := dbms_crypto.decrypt(src => l_src_data, typ => l_type, KEY => utl_i18n.string_to_raw(l_key, 'AL32UTF8'));
dbms_output.put_line(utl_i18n.raw_to_char(l_decval));
END;
/
SELECT utl_i18n.raw_to_char(DBMS_CRYPTO.decrypt(hextoraw('585388D3D97972B7356EAA57BE39018E'), 4360, UTL_I18N.STRING_TO_RAW('01234567891234560123456789123456','AL32UTF8')))
FROM dual;