gpt4 book ai didi

sql - 如何使用 DBMS_OBFUSCATION_TOOLKIT.MD5 将 VARCHAR2 散列为字母数字

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:07 24 4
gpt4 key购买 nike

我有 3 个变量名称、密码、邮件。我想像使用 MD5 的名称-密码-邮件一样对它们进行哈希处理。当我使用这段代码时:

SELECT sys.DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => 'hurricane-1234-mail@mail.com') FROM DUAL

输出看起来像:

8����n�iB

我想散列这个字母数字。喜欢(随机示例);

AD63Ss32S32casad23D

有什么方法可以用 MD5 或哪个 ORACLE SQL 函数来实现我想要的。

最佳答案

您可以将您的输入字符串转换为 RAW 并将其传递进来,获取 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,但作为一个来自 block 的示例调用:

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
0B38E5C219F8E40CADD2156ECBCB6942

关于sql - 如何使用 DBMS_OBFUSCATION_TOOLKIT.MD5 将 VARCHAR2 散列为字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com