替代密碼算法的原理是使用替代法進行加密就是將明文中的字符用其它字符替代 後形成密文例如明文字母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;
From:http://tw.wingwit.com/Article/program/Oracle/201311/17996.html