【问题标题】:Is there an MD5 Sum function in PL/SQLPL/SQL 中是否有 MD5 Sum 函数
【发布时间】:2012-02-08 06:37:26
【问题描述】:

在 Oracle SQL 中,我是否可以使用 MD5 函数或其他东西?我想做类似...

select name, md5_sum( name ) from person;

【问题讨论】:

标签: oracle md5 md5sum


【解决方案1】:

您可能需要检查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。)
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    this Tahiti Link。在 MD5 过程和函数 下,它说 这些子程序生成数据的 MD5 散列。 MD5 算法通过从给定数据生成 128 位加密消息摘要值来确保数据完整性。

    另请注意,DBMS_OBFUSCATION_TOOLKIT 已弃用,可以/应该替换为DBMS_CRYPTO,请参阅this Tahiti Link

    【讨论】:

    • 感谢您的链接...现在我需要向一些 DBA 推销它以获取它。哦,好吧......至少它存在,只是没有OOB功能。谢谢
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2014-08-05
      • 2011-07-20
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      相关资源
      最近更新 更多