如何调用Oracle MD5 哈希函数?

2021-12-24 00:00:00 sql oracle11g oracle plsql

我有以下代码.我使用的是 Oracle 11g.

I have below code. I am using Oracle 11g.

SELECT DBMS_OBFUSCATION_TOOLKIT.md5 (input => UTL_RAW.cast_to_raw(
  FIRST_NAME
  ||LAST_NAME
  )) md5_key ,
  FIRST_NAME ,
  LAST_NAME
FROM C_NAME_TAB
WHERE PKEY='1234'

我该如何调用此代码?我可以直接在sqldeveloper中执行这段代码吗?

How can i call this code? Can i directly execute this code in sqldeveloper?

推荐答案

在 Oracle 12c 中你可以使用函数 STANDARD_HASH.它不需要任何额外的权限.

In Oracle 12c you can use the function STANDARD_HASH. It does not require any additional privileges.

select standard_hash('foo', 'MD5') from dual;

<小时>

不推荐使用 dbms_obfuscation_toolkit(请参阅注释 此处一>).您可以直接使用 DBMS_CRYPTO:


The dbms_obfuscation_toolkit is deprecated (see Note here). You can use DBMS_CRYPTO directly:

select rawtohex(
    DBMS_CRYPTO.Hash (
        UTL_I18N.STRING_TO_RAW ('foo', 'AL32UTF8'),
        2)
    ) from dual;

输出:

ACBD18DB4CC2F85CEDEF654FCCC4A4D8

如果需要,添加一个较低的函数调用.详细了解 DBMS_CRYPTO.

Add a lower function call if needed. More on DBMS_CRYPTO.

相关文章