DBMS_CRYPTO 包

dbms_CRYPTO包提供一个对数据进行hash散列的方法。利用这个包,用户可以对数据进行MD5或SHA1散列。

41.1 相关方法

dbms_CRYPTO包中包含的过程和函数如下详细介绍:

  1. HASH

对varbinary数据进行hash散列。

语法如下:

FUNCTION HASH(

  SRC         IN  VARBINARY,

  TYPE        IN  INT

) RETURN VARBINARY;

参数详解

  • SRC 输入参数,需要散列的数据。此处不能为空。
  • TYPE

输入参数,使用算法,可选值HASH_MD5、HASH_SH1。HASH_MD5表示MD5信息摘要算法,HASH_SH1表示安全散列算法1(SHA-1)。

返回值

散列后的varbinary数据。

41.2 举例说明

使用包内的过程和函数之前,如果还未创建过系统包。请先调用系统过程创建系统包。

SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_CRYPTO');

SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_OUTPUT');

SET SERVEROUTPUT ON; --dbms_output.put_line需要设置这条语句,才能打印出消息

分别使用MD5散列算法、SHA-1算法对VARBINARY类型数据进行散列。

DECLARE 

  RAW_INPUT  VARBINARY(128) := '74696765727469676572746967657274';

  MD5_RAW   VARBINARY(2048); 

  SHA1_RAW   VARBINARY(2048); 

 

  BEGIN

DBMS_OUTPUT.PUT_LINE('> ========= BEGIN TEST RAW DATA ========='); 

DBMS_OUTPUT.PUT_LINE('> RAW INPUT    : ' ||       RAW_INPUT); 

 

MD5_RAW := DBMS_CRYPTO.HASH(RAW_INPUT, DBMS_CRYPTO.HASH_MD5); 

   DBMS_OUTPUT.PUT_LINE('> MD5 HASH    : ' ||        MD5_RAW); 

   SHA1_RAW := DBMS_CRYPTO.HASH(RAW_INPUT, DBMS_CRYPTO.HASH_SH1); 

   DBMS_OUTPUT.PUT_LINE('> SHA1 HASH   : ' ||       SHA1_RAW);   

  END;

/

结果:

> ========= BEGIN TEST RAW DATA =========

> RAW INPUT           : 74696765727469676572746967657274

> MD5 HASH          : 831F2AA79221A0F8F330E43A76B53323

> SHA1 HASH          : 7E48985200C8255A8F7BFF840F9D1F2397A6C65A
微信扫码
分享文档
扫一扫
联系客服