oracle 包 解密,oracle9.1的加密解密包的用法
oracle9.1的加密解密包
双向加密算法
dbms_obfuscation_toolkit.desencrypt
dbms_obfuscation_toolkit.desdecrypt
dbms_obfuscation_toolkit.DES3Encrypt
dbms_obfuscation_toolkit.DES3Decrypt
单向加密算法
dbms_obfuscation_toolkit.md5
具体用法参见以下函数
--MD5加密
create or replace function
encrypt_md5(p_text varchar2) return varchar2 is
begin
--添加RawToHex(UTL_RAW.CAST_TO_RAW())为得是加密后的输出数据规范些
--input_string必须要有,否则没有办法区分到底是调用那个md5
return RawToHex(UTL_RAW.CAST_TO_RAW(dbms_obfuscation_toolkit.MD5(input_string=>p_text)));
end;
--DES加密
create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
begin
return UTL_RAW.CAST_TO_RAW(dbms_obfuscation_toolkit.DESENCRYPT(input_string => p_text,
key_string => p_key));
end;
--DES解密
create or replace function decrypt_data(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(4000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(
input_string => UTL_RAW.CAST_TO_varchar2(p_text),
key_string => p_key,
decrypted_string=> v_text);
return v_text;
end;
附录oracle9.2文档自带的DES3加密解密实例:
DECLARE
input_string VARCHAR2(16) := 'tigertigertigert';
raw_input RAW(128) := UTL_RAW.CAST_TO_RAW(input_string);
key_string VARCHAR2(16) := 'scottscottscotts';
raw_key RAW(128) := UTL_RAW.CAST_TO_RAW(key_string);
encrypted_raw RAW(2048);
encrypted_string VARCHAR2(2048);
decrypted_raw RAW(2048);
decrypted_string VARCHAR2(2048);
error_in_input_buffer_length EXCEPTION;
PRAGMA EXCEPTION_INIT(error_in_input_buffer_length, -28232);
INPUT_BUFFER_LENGTH_ERR_MSG VARCHAR2(100) :=
'*** DES INPUT BUFFER NOT A MULTIPLE OF 8 BYTES - IGNORING EXCEPTION ***';
double_encrypt_not_permitted EXCEPTION;
PRAGMA EXCEPTION_INIT(double_encrypt_not_permitted, -28233);
DOUBLE_ENCRYPTION_ERR_MSG VARCHAR2(100) :=
'*** CANNOT DOUBLE ENCRYPT DATA - IGNORING EXCEPTION ***';
-- 1. Begin testing raw data encryption and decryption
BEGIN
dbms_output.put_line('> ========= BEGIN TEST RAW DATA =========');
dbms_output.put_line('> Raw input : ' ||
UTL_RAW.CAST_TO_VARCHAR2(raw_input));
BEGIN
dbms_obfuscation_toolkit.DES3Encrypt(input => raw_input,
key => raw_key, encrypted_data => encrypted_raw );
dbms_output.put_line('> encrypted hex value : ' ||
rawtohex(encrypted_raw));
dbms_obfuscation_toolkit.DES3Decrypt(input => encrypted_raw,
key => raw_key, decrypted_data => decrypted_raw);
dbms_output.put_line('> Decrypted raw output : ' ||
UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw));
dbms_output.put_line('> ');
if UTL_RAW.CAST_TO_VARCHAR2(raw_input) =
UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw) THEN
dbms_output.put_line('> Raw DES3 Encyption and Decryption successful');
END if;
EXCEPTION
WHEN error_in_input_buffer_length THEN
dbms_output.put_line('> ' || INPUT_BUFFER_LENGTH_ERR_MSG);
END;
dbms_output.put_line('> ');
END;
-- 2. Begin testing string data encryption and decryption
dbms_output.put_line('> ========= BEGIN TEST STRING DATA =========');
BEGIN
dbms_output.put_line('> input string : '
|| input_string);
dbms_obfuscation_toolkit.DES3Encrypt(
input_string => input_string,
key_string => key_string,
encrypted_string => encrypted_string );
dbms_output.put_line('> encrypted hex value : ' ||
rawtohex(UTL_RAW.CAST_TO_RAW(encrypted_string)));
dbms_obfuscation_toolkit.DES3Decrypt(
input_string => encrypted_string,
key_string => key_string,
decrypted_string => decrypted_string );
dbms_output.put_line('> decrypted string output : ' ||
decrypted_string);
if input_string = decrypted_string THEN
dbms_output.put_line('> String DES3 Encyption and Decryption
successful');
END if;
EXCEPTION
WHEN error_in_input_buffer_length THEN
dbms_output.put_line(' ' || INPUT_BUFFER_LENGTH_ERR_MSG);
END;
dbms_output.put_line('> ');
END;
不错的冬冬.共享一下!
oracle 包 解密,oracle9.1的加密解密包的用法相关推荐
- java 3des_如何用Java进行3DES加密解密 java实现3des加密解密教程
3des,全称为3DESede或TripleDES,中文解释为是三重数据加密,用户可以通过通过对DES算法进行改进,针对每个数据块进行三次DES加密,下面小编为你带来java实现3des加密解密教程! ...
- python des解密_python实现DES加密解密方法实例详解
本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优 ...
- 【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...
- python 加密解密_python实现AES加密解密
本文实例为大家分享了python实现AES加密解密的具体代码,供大家参考,具体内容如下 (1)对于AES加密解密相关知识 (2)实现的功能就是输入0-16个字符,然后经过AES的加密解密最后可以得到原 ...
- java加密解密代码_base64位加密解密原理及js代码实现
base64位加密解密原理及js代码实现 在网上找了很多关于Base64加密解密的原理以一个比较通俗易懂的方式理解整理了一下大致原理如下 先上base64对照表 #加密 #1:将明文对照以acsii码 ...
- java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法
java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...
- c php aes加密解密,php的AES加密解密
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $privateKey = "1234567812345678"; $ ...
- java 3des加密_Java使用3DES加密解密的流程 - 3des加密解密详细解释
Java使用3DES加密解密的流程 ①传入共同约定的密钥(keyBytes)以及算法(Algorithm),来构建SecretKey密钥对象 SecretKey deskey = new Secret ...
- linux密文解密工具,Linux之加密解密工具openssl的用法以及自建CA
在Linux下的安全工具openssl [安全特性] 1.保密性:数据保密性.隐私性 2.完整性:数据完整性.系统完整性 3.可用性 4.真实性:确保数据发送方不是被替换的 5.可追溯性 [安全*** ...
最新文章
- 新一代服务器和解决方案齐发力 推动虚拟化进程(一)
- 什么函数不能声明为虚函数
- Python中有了列表,为什么还有元组?
- Python字节到大整数的打包与解包
- 林达华:Computer Vision的尴尬
- 高性能红黑二叉树实现
- React17事件委托的变更
- poj 1001 分析
- 简单远程控制(仅传递鼠标和键盘消息)的实现
- 安装torchsnooper、convokit、entmax库
- VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path
- HDU - 1166 敌兵布阵(线段树模板)(入门题)
- 打字测试软件源码 vb,打字测试程序 VB代码
- 更改centos7操作系统的IP地址
- windows调整jadx的使用内存大小
- 上海大学计算机工程与科学学院研究生导师,上海大学计算机工程与科学学院硕士生导师刘方方...
- 机械/电信/生物/化学专业出身,为啥都要转行计算机?
- 基于js实现页面图片消除
- Linux 线程结束的善后处理
- C站(CSDN)高校俱乐部招募部长
热门文章
- Redis和Memcache区别,优缺点对比
- 判空前后顺序的思考(代码规范)
- 实时平台在趣头条的建设实践
- leetcode 677. Map Sum Pairs | 677. 键值映射(Trie前缀树,BFS)
- 【Python】Flask框架系列(二):安装、配置文件、增删改查
- 计算机编码规则之:Base64编码
- 一文弄懂java中的Queue家族
- Insyde uefi 隐藏设置_安卓福利,手机桌面图标隐藏,找应用按字母轻松搞定!
- 05.analysis-normalizer应用
- elasticsearch_script_01