Dear Experts
I am trying to encrypt and decrypt the data stored in the database and the below is the function.
Please help to decrypt the function Error , same is working in 11g.
Database version Using : 12.1.0.2.0
====================Encrypt Function
CREATE OR REPLACE FUNCTION fn_encrypt (pi_str_val VARCHAR2)
RETURN RAW
AS
v_key VARCHAR2(4000) := '~!@#$%^&*()_+|}{":?><`;''/.,\-=~`';
v_master_key VARCHAR2(4000) := 'IamTheMasterKey';
v_mod NUMBER := dbms_crypto.ENCRYPT_AES256 + dbms_crypto.CHAIN_CBC + dbms_crypto.PAD_PKCS5;
v_enc_key RAW(4000);
v_enc_val RAW(4000);
BEGIN
v_enc_key := utl_raw.bit_xor (UTL_I18N.STRING_TO_RAW (v_key , 'AL32UTF8'), UTL_I18N.STRING_TO_RAW (v_master_key, 'AL32UTF8'));
v_enc_val := dbms_crypto.encrypt (UTL_I18N.STRING_TO_RAW (pi_str_val, 'AL32UTF8'), v_mod, v_enc_key );
RETURN RAWTOHEX(v_enc_val);
END;
/
=============Decrypt Function
CREATE OR REPLACE FUNCTION fn_decrypt (pi_hex_val VARCHAR)
RETURN VARCHAR2
AS
v_raw_val RAW (4000) := HEXTORAW(pi_hex_val);
v_key VARCHAR2(4000) := '~!@#$%^&*()_+|}{":?><`;''/.,\-=~`';
v_master_key VARCHAR2(4000) := 'IamTheMasterKey';
v_mod NUMBER := dbms_crypto.ENCRYPT_AES256 + dbms_crypto.CHAIN_CBC + dbms_crypto.PAD_PKCS5;
v_enc_key RAW (4000);
v_dec_val RAW (4000);
BEGIN
v_enc_key := utl_raw.bit_xor (UTL_I18N.STRING_TO_RAW (v_key, 'AL32UTF8'), UTL_I18N.STRING_TO_RAW (v_master_key, 'AL32UTF8'));
v_dec_val := dbms_crypto.decrypt (v_raw_val, v_mod, v_enc_key );
RETURN utl_i18n.raw_to_char(v_dec_val);
END;
/
Output For Encryption :

Error Output while Decrypting :

Please help,Thanks in advance.