欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

封装Oracle中MD5的用法 博客分类: PLSQLMD5OracleSql SqlOracleMD5PlSql 

程序员文章站 2024-03-08 08:39:33
...

     为了测试需要,需要在数据库中直接使用MD5,对Oracle中MD5的用法进行了简单的封装,直接在代码中执行可以不封装成函数,

如下

DECLARE
  input_string   VARCHAR2(9999) := 'zbcdefghijklmnopqrstuvwxyz';--此处可以修改

  raw_input      RAW(128) ;
  
  decrypted_raw  RAW(2048);

BEGIN
   
  
  --此处可以使用表中的数据做 加密的原始字符串代替手动输入
  --select dummy into input_string from dual   ;
  
  dbms_output.put_line('key-->'||input_string);
  
  --将字符串 转换成 每个字符的ASCII码存放到raw_input RAW类型变量
  raw_input := UTL_RAW.CAST_TO_RAW(input_string)  ;
  
  sys.dbms_obfuscation_toolkit.MD5(input    => raw_input, checksum => decrypted_raw);

  dbms_output.put_line(rawtohex(decrypted_raw));


END;

 

 

     如果需要 大面积调用, 最好封装成一个Function,如下,因权限问题,没有进行测试

CREATE OR REPLACE  FUNCTION MD5
    (
    input_string_arg in varchar(99999); 
)
return varchar2

  input_string :=input_string_arg;

  raw_input      RAW(128) ;
  
  decrypted_raw  RAW(2048);

BEGIN
   
  
  --此处可以使用表中的数据做 加密的原始字符串代替手动输入
  --select dummy into input_string from dual   ;
  
  dbms_output.put_line('key-->'||input_string);
  
  --将字符串 转换成 每个字符的ASCII码存放到raw_input RAW类型变量
  raw_input := UTL_RAW.CAST_TO_RAW(input_string)  ;
  
  sys.dbms_obfuscation_toolkit.MD5(input    => raw_input, checksum => decrypted_raw);

  dbms_output.put_line(rawtohex(decrypted_raw));
return  rawtohex(decrypted_raw);

END;