在Oracle SQL中,是否有可用的MD5功能?我想做点什么...
select name, md5_sum( name ) from person;
答案 0 :(得分: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.
答案 1 :(得分:9)
在12c中,您可以使用STANDARD_HASH。它默认可用,不需要任何PL / SQL对象或硬编码值,也不会弃用。
SQL> select standard_hash('Finally, an easy way to do this.', 'MD5') md5
2 from dual;
MD5
--------------------------------
456E4D024B4BB704169E21DEB895B0E2
答案 2 :(得分:8)
见this Tahiti Link。在 MD5程序和函数下,它说这些子程序生成MD5数据哈希值。 MD5算法通过从给定数据生成128位加密消息摘要值来确保数据完整性。
另请注意,DBMS_OBFUSCATION_TOOLKIT
已弃用,可以/应该替换为DBMS_CRYPTO
,请参阅this Tahiti Link
答案 3 :(得分:-4)
不要认为它开箱即用。你需要定义自己的。