md5加密算法可以在oracle实现,说说在 Oracle 中如何实现 MD5 加密

本文介绍了Oracle数据库中DBMS_OBFUSCATION_TOOLKIT包提供的MD5加密函数,包括其不同输入输出参数及类型。通过示例展示了如何创建自定义MD5函数并进行调用,同时解释了RAW类型在数据传输和存储中的优势。了解这些内容有助于提升数据库安全性和数据一致性。
摘要由CSDN通过智能技术生成

Oracle 在 DBMS_OBFUSCATION_TOOLKIT 包中提供了 MD5 加密函数,它的定义如下:

DBMS_OBFUSCATION_TOOLKIT.MD5(

input IN RAW,

checksum OUT raw_checksum);

DBMS_OBFUSCATION_TOOLKIT.MD5(

input_string IN VARCHAR2,

checksum_string OUT varchar2_checksum);

DBMS_OBFUSCATION_TOOLKIT.MD5(

input IN RAW)

RETURN raw_checksum;

DBMS_OBFUSCATION_TOOLKIT.MD5(

input_string IN VARCHAR2)

RETURN varchar2_checksum;

参数名

类型

说明

input

RAW

需要加密的对象。

checksum

RAW

加密后的对象。

input_string

VARCHAR2

需要加密的对象。

checksum_string

VARCHAR2

加密后的对象。

raw_checksum

RAW(16)

加密后的对象。

varchar2_checksum

VARCHAR2(16)

加密后的对象。

RAW,类似于 CHAR,声明方式为 RAW(L), L 为长度,以字节为单位,作为数据库列最大 2000 字节,作为变量最大 32767 字节 。

LONG RAW ,类似于 LONG ,作为数据库列最大存储 2G 字节的数据,作为变量最大 32760 字节。

RAW 类型的好处就是:在网络中的计算机之间传输 RAW 数据时,或者使用 Oracle 实用程序将 RAW 数据从一个数据库移到另一个数据库时, Oracle 服务器不执行字符集转换 。 存储实际列值所需要的字节数大小随每行大小而异,最多为 2000 字节 。 可能这样的数据类型在数据库效率上会提高,而且对数据由于字符集的不同而导致的不一致的可能性在这里也被排除了 。

现在建立 MD5 函数:

CREATE OR REPLACE FUNCTION MD5(pass IN VARCHAR2)

RETURN VARCHAR2 IS v VARCHAR2(32);

BEGIN

v:=utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => pass));

RETURN v;

END;

这里使用了 utl_raw.cast_to_raw 函数,用于把 VARCHAR2 类型的值转化为 RAW。

调用示例:

select md5(1) from dual;

1fcfd740ffef?utm_source=oschina-app

是不是很简单呀O(∩_∩)O哈哈~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值