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;