当前位置:Gxlcms > mysql > pl/sql:aes256加密解密

pl/sql:aes256加密解密

时间:2021-07-01 10:21:17 帮助过:44人阅读

调用相应的API对BLOB数据 相应的加密和解密 PL/SQL 加密解密 --加密function encrypt_aes256 (p_blob in blob, p_key in varchar2) return blobas l_key_raw raw(32); l_returnvalue blob;begin /* Purpose: encrypt blob Remarks: p_key should be 32 charac

调用相应的API对BLOB数据 相应的加密和解密 PL/SQL 加密解密
  1. --加密
  2. function encrypt_aes256 (p_blob in blob,
  3. p_key in varchar2) return blob
  4. as
  5. l_key_raw raw(32);
  6. l_returnvalue blob;
  7. begin
  8. /*
  9. Purpose: encrypt blob
  10. Remarks: p_key should be 32 characters (256 bits / 8 = 32 bytes)
  11. Who Date Description
  12. ------ ---------- -------------------------------------
  13. MBR 20.01.2011 Created
  14. */
  15. --获得 raw类型的key
  16. l_key_raw := utl_raw.cast_to_raw (p_key);
  17. dbms_lob.createtemporary (l_returnvalue, false);
  18. dbms_crypto.encrypt (l_returnvalue, p_blob, g_encryption_type_aes, l_key_raw);
  19. return l_returnvalue;
  20. end encrypt_aes256;
  21. --解密
  22. function decrypt_aes256 (p_blob in blob,
  23. p_key in varchar2) return blob
  24. as
  25. l_key_raw raw(32);
  26. l_returnvalue blob;
  27. begin
  28. /*
  29. Purpose: decrypt blob
  30. Remarks: p_key should be 32 characters (256 bits / 8 = 32 bytes)
  31. Who Date Description
  32. ------ ---------- -------------------------------------
  33. MBR 20.01.2011 Created
  34. */
  35. l_key_raw := utl_raw.cast_to_raw (p_key);
  36. dbms_lob.createtemporary (l_returnvalue, false);
  37. dbms_crypto.decrypt (l_returnvalue, p_blob, g_encryption_type_aes, l_key_raw);
  38. return l_returnvalue;
  39. end decrypt_aes256;

人气教程排行