PolarDB PostgreSQL版(兼容Oracle)提供的DBMS_OBFUSCATION_TOOLKIT包支持使用MD5函數和存儲過程,且與Oracle兼容。

使用須知

2020年3月30日及之后創建的PolarDB PostgreSQL版(兼容Oracle)集群,會在創建數據庫時自動創建DBMS_OBFUSCATION_TOOLKIT插件。

2020年3月30日之前創建的PolarDB PostgreSQL版(兼容Oracle)集群,需要您手動創建插件,創建方法如下:
CREATE EXTENSION polar_dbms_obfuscation_toolkit;

更多關于該插件的說明請參見DBMS_OBFUSCATION_TOOLKIT

接口

接口名稱接口類型輸入參數類型輸出參數類型
dbms_obfuscation_toolkit.md5函數BYTEARAW_CHECKSUM
dbms_obfuscation_toolkit.md5存儲過程BYTEARAW_CHECKSUM
dbms_obfuscation_toolkit.md5函數CHARACTER VARYINGCHARACTER VARYING
dbms_obfuscation_toolkit.md5存儲過程CHARACTER VARYINGCHARACTER VARYING

使用方法

  • 接口類型為函數時的使用方法。
    select dbms_obfuscation_toolkit.md5('a'::varchar2);
    select dbms_obfuscation_toolkit.md5('a'::raw);
  • 接口類型為存儲過程時的使用方法。
    declare
      input varchar2(100):= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
      checksum1 raw(100);
      checksum2 varchar2(100);
    begin
      dbms_obfuscation_toolkit.md5(input=>utl_raw.cast_to_raw(input), checksum=>checksum1);
      dbms_obfuscation_toolkit.md5(input_string=>input, checksum_string=>checksum2);
      dbms_output.put_line(checksum1);
      dbms_output.put_line(utl_raw.cast_to_raw(checksum2));
    end;