PL/SQL中是否有MD5校验和函数?

9
在Oracle SQL中,是否有可用的MD5函数或类似的函数?我想要做这样的事情...
select name, md5_sum( name ) from person;

参见https://dev59.com/TnI-5IYBdhLWcg3wpaF1。即使哈希算法不同(MD5 vs. SHA1),答案基本相同。 - user272735
4个回答

12

你可能想要检查DBMS_OBFUSCATION_TOOLKIT.MD5过程。

这里是一个例子:

     SQL> column md5_val FORMAT A40
     SQL> SELECT DBMS_OBFUSCATION_TOOLKIT.md5 (input => UTL_RAW.cast_to_raw('Eddie')) md5_val
       2    FROM DUAL;
     MD5_VAL
     ----------------------------------------
     E5F6C83E6E97C74FC9E9760FC8972AED

     1 row selected.

DBMS_OBFUSCATION_TOOLKIT自11g R2版本以来已被弃用。请改用DBMS_CRYPTO。(或在12c中使用STANDARD_HASH。) - user272735

12

在12c版本中,您可以使用STANDARD_HASH。它默认可用,不需要任何PL/SQL对象或硬编码值,并且未被弃用。

SQL> select standard_hash('Finally, an easy way to do this.', 'MD5') md5
  2  from dual;

MD5
--------------------------------
456E4D024B4BB704169E21DEB895B0E2

8

请查看这个 Tahiti 链接。在MD5过程和函数下面,它说这些子程序生成数据的MD5散列值。MD5算法通过从给定的数据生成128位的加密摘要值来确保数据完整性。

另外,请注意,DBMS_OBFUSCATION_TOOLKIT已被弃用,可以/应该使用DBMS_CRYPTO进行替换,请参见此 Tahiti 链接


谢谢提供链接...现在我需要向一些数据库管理员推销,以便让它对我可用。哦,好吧...至少它存在,只是没有开箱即用的功能。谢谢。 - Bob Kuhar

-4

不要认为它是开箱即用的。你需要定义自己的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接