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