数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle数据库替代加密算法


发布日期:2018年01月08日
 
Oracle数据库替代加密算法

替代密码算法的原理是使用替代法进行加密就是将明文中的字符用其它字符替代 后形成密文例如明文字母abcd 用DEFG做对应替换后形成密文

这里在Oracle的存储过程通过替换加密算法来实现密码存入数据库时的加密

Oracle数据库加密替代算法

CREATE OR REPLACE PROCEDURE pro_insert(

uName IN scottusersuname%TYPE 用户名

uPwd IN scottusersupwd%TYPE 密码这个要加密

) IS

BEGIN

定义变量

DECLARE

insertSQL nvarchar( ); 一个待构造的sql语句

key numeric(); 密钥

totalLetter numeric(); 字母的总个数

targetCode nvarchar(); 转化后的字符密码表示

lengthUpwd numeric(); 密码长度

initCodeVal numeric(); 原始密码每位上字符对应的数值

targetCodeVal numeric();

BEGIN

key := ; 密钥赋值

totalLetter := ; 字母总数

targetCode := ; 转化后的字符

获取初始密钥的长度

lengthUpwd := LENGTH(uPwd);

逐个对初始密钥进行加密

FOR i IN lengthUpwd

LOOP

initCodeVal := ASCII(SUBSTR(uPwdi) ) ;

如果替代后的字母超过了z

targetCodeVal := MOD((initCodeVal + key) totalLetter );

如果是字母z

IF targetCodeVal = THEN

targetCodeVal := ;

END IF;

targetCodeVal := targetCodeVal + ;

将加密后的字符拼装

targetCode := targetCode || CHR(targetCodeVal);

END LOOP;

构造一个sql语句

insertSQL := INSERT INTO users (uName uPwd ) VALUES(

||uName||||targetCode||);

EXECUTE IMMEDIATE TO_CHAR(insertSQL);

END;

END pro_insert;

上一篇:Oracle中的用户管理的不完全恢复

下一篇:Oracle按不同时间分组统计的sql