oracle加密和解密函数

在数据存入一些敏感信息(姓名,身份证,电话等)时,一般要求都是要进行加密保存的,下面是一组oracle加密和解密函数

1. 加密函数

CREATE OR REPLACE function
ds_func_encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(20000) ;
key_input RAW(1000) ;
decrypted_raw RAW(20000);
v_ErrorText varchar2(500);
begin
if(p_text is null or p_text = ‘‘ )
then return ‘‘;
end if;
dbms_output.put_line(p_text);
v_text := rpad( p_text, (trunc(lengthb(p_text)/8)+1)*8, chr(0));
dbms_output.put_line(v_text);
raw_input := UTL_I18N.STRING_TO_RAW(v_text,‘ZHS16GBK‘);
key_input := UTL_I18N.STRING_TO_RAW(p_key,‘ZHS16GBK‘);
dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
exception
when others then
v_ErrorText := ‘dserror:‘||SUBSTR(SQLERRM, 1, 200);
return v_ErrorText;
end;

2. 解密函数

CREATE OR REPLACE function ds_func_decrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
p_text_raw RAW(20000);
p_key_raw RAW(20000);
v_text_raw RAW(20000);
v_text varchar2(4000);
v_ErrorText varchar2(500);
begin
if(p_text is null or p_text = ‘‘ )
then return ‘‘;
end if;
p_text_raw := HEXTORAW(p_text);
p_key_raw := UTL_I18N.STRING_TO_RAW(p_key, ‘ZHS16GBK‘);
dbms_obfuscation_toolkit.DESDECRYPT(input => p_text_raw, key =>p_key_raw, decrypted_data=> v_text_raw);
v_text := UTL_I18N.RAW_TO_CHAR(v_text_raw, ‘ZHS16GBK‘);
dbms_output.put_line(v_text);
return rtrim(v_text,chr(0));
exception
when others then
v_ErrorText := ‘dserror:‘||SUBSTR(SQLERRM, 1, 200);
return v_ErrorText;
end;

3. 说明

加密和解密函数都有两个入参

p_text:加密字段

p_key:加密密钥(防止加密被容易破解,最短8位,不过要记住,否则无法解密)

原文地址:https://www.cnblogs.com/gangbalei/p/10411502.html

时间: 2024-12-20 07:56:08

oracle加密和解密函数的相关文章

用SQL实现的BASE64加密及解密函数(SQL2005以上有效)

CREATE FUNCTION [dbo].[f_base64_encode] (@bin varbinary(max)) returns varchar(max) as begin return cast(N'' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'varchar(max)') end GO CREATE FUNCTION [dbo].[f_base64_decode] (@64

简单的加密与解密的实现---仿射密码

#include <iostream> #include <string.h> using namespace std; int main() {     void encrytion_decrypt(char input[],int len);     char input[10];     cout<<"Please input password:";     cin>>input;     int len;     len=strl

JS URL 使用base64加密与解密

JS编码方式: <script type="text/javascript"> document.write(encodeURI("http://www.w3school.com.cn/My first/")+ "<br />")//编译 document.write(decodeURI("http://www.w3school.com.cn/My first/")+ "<br />

ThInkPHP加密和解密cookie(登录操作)

摘自:http://www.thinkphp.cn/code/1794.html 通过加密cookie是网站安全性更高,登录信息不保存在session中在function.php文件在建立两个函数,加密和解密函数 /** * 加密函数 * @param string $txt 需要加密的字符串 * @param string $key 密钥 * @return string 返回加密结果 */ function encrypt($txt, $key = ''){ if (empty($txt))

mcrypt加密以及解密过程

Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示 Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原. 1.PHP加密扩展库Mcrypt安装在标准的PHP安装过程中并没有把Mrcypt安装上,但PHP的主目录下包含了libmcrypt.dll和libmhash.dll文件 (libmhash.dll是Mhash扩展库,这里可以一起装上).首先,将这两个文件复制到

base64 加密原理 解密原理

假设需要加密的字符串是Jasmine 具体转换步骤: 第一步 将待转换的字符串转为一个个字符第二步 计算每一个字符对应的ASCII码十进制第三步 计算出十进制对应的二进制,若不足8位,在前面添加0进行补全第四步 将8位的二进制码,按照6个6个一组划分,若不能整除6,在最末添加0补足6位第五步 计算对应的十进制编码第六步 按照base64表,查看对应的字符第七步 将加密后的字符3个3个分成一组,不足3位的添加=进行补全第八步 得到最终结果 同时得到base64位加密后的特征:长度是3的倍数只含有6

PHP带参数可逆的加密解密函数,可用于cookie的加密解密

在开发应用过程中我们经常会涉及一些链接或参数或cookie的加密解密,由于php自身提供的md5函数不可逆,因此md5只适用于类似密码加密的地方,而cookie加密则有局限性,下面为大家提供一种加密解密函数方法,供大家参考: <?php //加密函数 function passport_encrypt($txt, $key) { srand((double)microtime() * 1000000); $encrypt_key = md5(rand(0, 32000)); $ctr = 0;

php加密解密函数

转自:http://www.jb51.net/article/51706.htm 很多项目的会员系统,都要求要有记住登录功能,在通过cookies实现功能是,由于要将客户信息直接保存到cookies,如果直接写入cookies势必会带来安全隐患,因此通过可逆加密后再保存到cookies相对就安全了 项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理.最常见的应用在用户登录以及一些API

2个比较经典的PHP加密解密函数分享

项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些API数据交换的场景. 笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家.加密解密原理一般都是通过一定的加密解密算法,将密钥加入到算法中,最终得到加密解密结果. 1.非常给力的authcode加密函数,Discuz!经典代码(带详解): function authcode($string, $