Oracle加密解密(2)

-- 示例(不考虑BLOB类型的加密)
DECLARE v_str VARCHAR2(20) := '12345678'; -- 加密的字符串 v_type PLS_INTEGER := dbms_crypto.DES_CBC_PKCS5; -- 加密类型 v_key RAW(256); v_key1 VARCHAR2(100) := 'oracle9i012'; encrypted_raw RAW(256); decrypted_raw RAW(256); BEGIN -- 生成随机16位密钥 (1个byte等于两位raw) v_key := dbms_crypto.RandomBytes(8); dbms_output.put_line('Encrypted Key: ' || v_key); -- 加密 encrypted_raw := dbms_crypto.Encrypt(src => utl_raw.cast_to_raw(v_str), typ => v_type, key => v_key); dbms_output.put_line('Encrypted Raw: ' || encrypted_raw); dbms_output.put_line('Encrypted hex value: ' || rawtohex(encrypted_raw)); -- 解密 decrypted_raw := dbms_crypto.Decrypt(src => encrypted_raw, typ => v_type, key => v_key); dbms_output.put_line('Decrypted String: ' || utl_raw.cast_to_varchar2(decrypted_raw)); END;

可以加加密和解密的内容写入函数中,方便使用的时候直接调用。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8eb0a353f701c305b53a76881d87749c.html