利用Oracle的dbms_obfuscation_toolkit加密解密数据
作者:叶枫
版权声明:本文可以自由转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
作者:叶枫(http://blog.matrix.org.cn/page/叶枫)
原文:[][/url]
关键字:Oracle 加密 解密
为了保护敏感数据,oracle从8i开始提供一个数据加密包:dbms_obfuscation_toolkit.利用这个包,我们可以对数据进行DES,Triple DES或者MD5加密. 本文就此讲解如何使用以及使用过程需要注意的问题.
1. dbms_obfuscation_toolkit简介
dbms_obfuscation_toolkit主要有一下几个存储过程:-
DESGETKEY -- 产生密钥,用于DES算法
DES3GETKEY -- 产生密钥,用于Triple DES算法
DESENCRYPT -- 用DES算法加密数据
DESDECRYPT -- 用DES算法解密数据
DES3ENCRYPT -- 用Triple DES算法加密数据
DES3DECRYPT -- 用DES算法解密数据
MD5 -- 用MD5算法加密数据
2. 准备数据表
在开始前,我们先创建表users:
drop table users;
create table users(
userid varchar2(50) primary key,
password varchar2(64), --密码原文
encrypted varchar2(64) --加密后的密码
);
insert into users values ('user1','user1234',null);
insert into users values ('user2','abcd1234',null);
insert into users values ('user3','oracle12',null);
commit;
3. 创建包PG_ENCRYPT_DECRYPT
create or replace package PG_ENCRYPT_DECRYPT is
iKey varchar2(8):='oracle9i';
function GEN_RAW_KEY ( iKey in varchar2) return raw;
function DECRYPT_3KEY_MODE(iValue in raw,iMode in pls_inte