替代密码算法的原理是使用替代法进行加密就是将明文中的字符用其它字符替代 后形成密文例如明文字母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;