oracle 函数 实现简单的加密解密
2010-01-26 16:26
579 查看
1. 加密算法
create or replace function encrypt (in_string varchar2,shift number) return varchar2 is
lv_out_string varchar2(100);
lv_in_string varchar2(100);
lv_length number(5);
lv_count number(5);
lv_temp varchar2(1);
lv_shift number(5);
begin
lv_shift := mod(shift,26);
lv_in_string := lower(in_string);
select LENGTH(lv_in_string),1,'' into lv_length,lv_count,lv_out_string from dual;
for lv_count in 1.. lv_length loop
lv_temp := substr(lv_in_string,lv_count,1);
if ascii(lv_temp) <97 or ascii(lv_temp) >122 then
lv_out_string := lv_out_string || lv_temp;
else
if ascii(lv_temp)+lv_shift>122 then
lv_temp :=chr(ascii(lv_temp)+lv_shift - 26);
else
lv_temp := chr(ascii(lv_temp)+lv_shift);
end if;
lv_out_string := lv_out_string || lv_temp;
end if;
end loop;
return lv_out_string;
end encrypt ;
2. 解密算法
create or replace function decrypt (in_string varchar2,shift number) return varchar2
is
lv_out_string varchar2(10);
lv_length number(3);
lv_count number(3);
lv_temp varchar2(100);
lv_shift number(3);
begin
lv_shift := mod(shift,26);
select length(in_string),1,'' into lv_length, lv_count,lv_out_string from dual;
for lv_count in 1.. lv_length loop
lv_temp :=substr(in_string,lv_count,1);
if ascii(lv_temp) <97 or ascii(lv_temp)>122 then
lv_out_string := lv_out_string || lv_temp;
else
if ascii(lv_temp)-lv_shift <97 then
lv_temp := chr(ascii(lv_temp) - lv_shift +26);
else
lv_temp := CHR(ASCII(lv_temp) - lv_shift);
end if;
lv_out_string := lv_out_string || lv_temp;
end if;
end loop;
return lv_out_string;
end decrypt;
本文出自 “简单” 博客,请务必保留此出处http://dba10g.blog.51cto.com/764602/270733
create or replace function encrypt (in_string varchar2,shift number) return varchar2 is
lv_out_string varchar2(100);
lv_in_string varchar2(100);
lv_length number(5);
lv_count number(5);
lv_temp varchar2(1);
lv_shift number(5);
begin
lv_shift := mod(shift,26);
lv_in_string := lower(in_string);
select LENGTH(lv_in_string),1,'' into lv_length,lv_count,lv_out_string from dual;
for lv_count in 1.. lv_length loop
lv_temp := substr(lv_in_string,lv_count,1);
if ascii(lv_temp) <97 or ascii(lv_temp) >122 then
lv_out_string := lv_out_string || lv_temp;
else
if ascii(lv_temp)+lv_shift>122 then
lv_temp :=chr(ascii(lv_temp)+lv_shift - 26);
else
lv_temp := chr(ascii(lv_temp)+lv_shift);
end if;
lv_out_string := lv_out_string || lv_temp;
end if;
end loop;
return lv_out_string;
end encrypt ;
2. 解密算法
create or replace function decrypt (in_string varchar2,shift number) return varchar2
is
lv_out_string varchar2(10);
lv_length number(3);
lv_count number(3);
lv_temp varchar2(100);
lv_shift number(3);
begin
lv_shift := mod(shift,26);
select length(in_string),1,'' into lv_length, lv_count,lv_out_string from dual;
for lv_count in 1.. lv_length loop
lv_temp :=substr(in_string,lv_count,1);
if ascii(lv_temp) <97 or ascii(lv_temp)>122 then
lv_out_string := lv_out_string || lv_temp;
else
if ascii(lv_temp)-lv_shift <97 then
lv_temp := chr(ascii(lv_temp) - lv_shift +26);
else
lv_temp := CHR(ASCII(lv_temp) - lv_shift);
end if;
lv_out_string := lv_out_string || lv_temp;
end if;
end loop;
return lv_out_string;
end decrypt;
本文出自 “简单” 博客,请务必保留此出处http://dba10g.blog.51cto.com/764602/270733
相关文章推荐
- 最简单的加密、解密图片函数和测试用例
- 简单的内容加密解密,在嵌入式上实现
- Oracle加密解密函数
- 简单的加密与解密的实现---仿射密码(c++使用string)
- C++实现文件简单加密与解密(读取文件中的字符,对字符转换,然后写入,完成加密,解密反之)
- Java 加密解密简单实现
- php实现的三个常用加密解密功能函数示例
- java实现RSA+AES的简单加密解密
- C#实现AES加密和解密函数
- Java加密解密简单实现
- 一对简单的加密解密函数
- 简单的加密与解密的实现---仿射密码
- java实现字符的简单加密和解密
- 加密与解密的简单实现
- 简单的内容加密解密,在嵌入式上实现
- 简单的内容加密解密,在嵌入式上实现
- C#实现AES加密和解密函数
- java 加密解密简单实现
- oracle 最简单的学习笔记,增删改查,PLSQL基本语法,游标,函数,存储过程的实现
- 简单的一行代码实现加密解密