我有三个可变的名字,密码,邮件。我想用MD5像名字密码邮件一样散列它们。当我使用这个代码时:
SELECT sys.DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => 'hurricane-1234-mail@mail.com') FROM DUAL输出情况如下:
8����n�iB我想破解这个字母数字。喜欢(随机的例子);
AD63Ss32S32casad23D有没有用MD5这样做的方法,或者哪个ORACLE函数可以像我想要的那样做。
发布于 2014-09-02 19:03:52
您可以将输入字符串转换为RAW并传入该字符串,从而获得一个原始值:
select dbms_obfuscation_toolkit.md5(input =>
utl_i18n.string_to_raw(data => 'hurricane-1234-mail@mail.com')) from dual;
0B38E5C219F8E40CADD2156ECBCB6942或者传递一个字符串并将结果转换为RAW:
select utl_i18n.string_to_raw(data => dbms_obfuscation_toolkit.md5(
input_string => 'hurricane-1234-mail@mail.com')) from dual;
0B38E5C219F8E40CADD2156ECBCB6942你在一条评论中说你在10g,但如果你在11g或更高,你应该考虑搬到DBMS_CRYPTO代替,因为DBMS_OBFUSCATION_TOOLKIT现在被废弃了。但是,您不能在普通SQL中使用它,因为typ参数是PLS_INTEGER,但作为示例,可以从块调用:
set serveroutput on
begin
dbms_output.put_line(dbms_crypto.hash(src => utl_i18n.string_to_raw(
data => 'hurricane-1234-mail@mail.com'), typ => dbms_crypto.hash_md5));
end;
/
anonymous block completed
0B38E5C219F8E40CADD2156ECBCB6942https://stackoverflow.com/questions/25630178
复制相似问题