oracle用存储过程加密一段字符串(3des算法)

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_integer)return varchar2;
function ENCRYPT_3KEY_MODE(iValue in varchar2,iMode in pls_integer)return raw;
function FormatStr(iValue in varchar2)return varchar2;
function FormatStr2(iValue in varchar2)return varchar2;
end;
/////////
create or replace package body PG_ENCRYPT_DECRYPT
is
function GEN_RAW_KEY ( iKey in varchar2)
return raw
as
rawkey raw(240) := '';
begin
for i in 1..length(iKey) loop
rawkey := rawkey||hextoraw(to_char(ascii(substr(iKey, i, 1))));
end loop;
return rawkey;
end GEN_RAW_KEY;
/* Creating function DECRYPT_3KEY_MODE*/
FUNCTION DECRYPT_3KEY_MODE ( iValue in raw, iMode in pls_integer)return varchar2
as
vDecrypted varchar2(4000);
rawkey raw(240) := '';
begin
rawkey := GEN_RAW_KEY(iKey);-- decrypt input string
vDecrypted := dbms_obfuscation_toolkit.des3decrypt (UTL_RAW.CAST_TO_VARCHAR2(iValue), key_string => rawkey, which => iMode);
return FormatStr2(vDecrypted);
end DECRYPT_3KEY_MODE;
/*Creating function ENCRYPT_3KEY_MODE*/
FUNCTION ENCRYPT_3KEY_MODE ( iValue in varchar2, iMode in pls_integer)return raw
as
vEncrypted varchar2(4000);
vEncryptedRaw Raw(2048);
rawkey raw(240) := '';
begin
rawkey := GEN_RAW_KEY(iKey);-- encrypt input string
vEncrypted := dbms_obfuscation_toolkit.des3encrypt (FormatStr(iValue), key_string => rawkey, which => iMode);
-- convert to raw as out
vEncryptedRaw := UTL_RAW.CAST_TO_RAW(vEncrypted);
return vEncryptedRaw;
end ENCRYPT_3KEY_MODE;

时间: 2024-11-15 19:59:30

oracle用存储过程加密一段字符串(3des算法)的相关文章

oracle 批量存储过程加密,怎么加密?谢谢!

问题描述 oracle 批量存储过程加密,怎么加密?谢谢! oracle 批量存储过程加密,怎么加密?请各位大侠支支招 解决方案 加密oracle存储过程oracle 加密存储过程如何加密Oracle中的存储过程 解决方案二: http://www.2cto.com/database/201305/212294.html

oracle数据库存储过程 截取数据

问题描述 oracle数据库存储过程 截取数据 oracle数据库存储过程问题: 传入一个字符串(字符串格式如:"辣椒_食品,西红柿_食品,板鞋_服饰,植物油_食品,领带_食品,--") 现在我想根据","来截断字符串存储到数组(其他变量也行).然后就可以得到这样的数组string[] arr={"辣椒_食品","西红柿_食品",--} 然后循环遍历这个数组,循环每条数据的时候再根据"_"来分割数据,分割完

Oracle存储过程中去掉重复字符串函数

以下函数是本人在编写Oracle数据库存储过程时写的函数,觉得该函数通用性较强,因此发表出来供需要的人参考. 这个函数的功能主要是用于去除给定字符串中重复的字符串.在使用中需要指定字符串的分隔符.示例: str := MyReplace('13,14,13,444', ','); 输出: 13,14,444create or replace function MyReplace(oldStr varchar2, sign varchar2) return varchar2 is str varc

如何在Delphi中调用oracle的存储过程返回数据集

oracle|存储过程|数据 选自CSDN http://search.csdn.net/Expert/topic/2280/2280860.xml?temp=2.169436E-02 论坛中JCC0128 网友的发言 [delphi+oracle报表解决方案(一)]delphi中调用oracle的存储过程(分带返回游标,不返回值两种)  关键字: delphi ,oracle存储过程,游标,返回数据集,报表 注:delphi 6+ oracle 8.1.6 一.创建包与包体 1.附:建表aac

如何在注册表中存储加密的连接字符串

加密|注册表|字符串 目标本章的目标是: • 在注册表中存储加密的数据库连接字符串 • 从注册表中读取加密的数据库连接字符串并对其进行解密. 返回页首适用范围本章适用于以下产品和技术: • Microsoft Windows XP 或 Windows 2000 Server (Service Pack 3) 以及更高版本的操作系统 • Microsoft .net Framework 版本 1.0 (Service Pack 2) 以及更高版本 • Microsoft Visual C# .ne

pl sql test调式-oracle plsql存储过程调试 如何传入date参数

问题描述 oracle plsql存储过程调试 如何传入date参数 begin -- Call the procedure aa_get_lock_card_id(p_member_id => :p_member_id, p_month_max_times => :p_month_max_times, p_now_time => :p_now_time, p_start_time => :p_start_time, p_sys_info_info => :p_sys_inf

oracle 存储过程 定时-oracle 定时存储过程 高手帮写一下

问题描述 oracle 定时存储过程 高手帮写一下 有两个表 一. t_cms_hot_keyword 热词表 字段: HOTKEYWORD_ID VARCHAR2(32) N id KEYWORD VARCHAR2(100) Y 关键字 AUTOMATIC NUMBER(38) Y 是否自动生成 1 是 0 不是 AREA VARCHAR2(32) Y 所属区域 MOD_TIME DATE Y 修改时间 CREATE_TIME DATE Y 创建时间 STATUS NUMBER(1) Y 是否

C# 加密解密(DES,3DES,MD5,Base64) 类

原文:C# 加密解密(DES,3DES,MD5,Base64) 类 保存! public sealed class EncryptUtils { #region Base64加密解密 /// <summary> /// Base64加密 /// </summary> /// <param name="input">需要加密的字符串</param> /// <returns></returns> public sta

Java 调用Oracle的存储过程问题

问题描述 在程序中,我已经和数据库连接上了但是在执行CallableStatementcs=con.prepareCall("{callp3()}");st.execute(); 的时候在那个execute()中出不来一直在运行,但是把存储过程名字写错误了他会有相关的异常提示,最后我就改成执行普通的sql语句Statementst=con.createStatement();st.executeUpdate("updateempsetsal=129whereename='KI