封装Oracle中MD5的用法

     为了测试需要,需要在数据库中直接使用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;

猜你喜欢

转载自314649444.iteye.com/blog/2074334
今日推荐