時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)
替代密碼算法的原理是使用替代法進(jìn)行加密,就是將明文中的字符用其它字符替代 后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做對(duì)應(yīng)替換后形成密文。
這里在Oracle的存儲(chǔ)過程,通過替換加密算法來實(shí)現(xiàn)密碼存入數(shù)據(jù)庫時(shí)的加密。
1.--------------------------------
2.--------------------------------
3.--Oracle數(shù)據(jù)庫加密----替代算法---
4.--http://nileader.blog.51cto.com
5.--------------------------------
6.CREATE OR REPLACE PROCEDURE pro_insert(
7.? uName IN scott.users.uname%TYPE,???? --用戶名
8.? uPwd? IN scott.users.upwd%TYPE --密碼,這個(gè)要加密
9.) IS
10.BEGIN
11.
12.--定義變量
13.DECLARE
14.?? insertSQL?? nvarchar2(200 );?? --一個(gè)待構(gòu)造的sql語句
15.?? key?? numeric(2);? --密鑰
16.?? totalLetter numeric(2);? --字母的總個(gè)數(shù)
17.?? targetCode?? nvarchar2(15);???? --轉(zhuǎn)化后的字符密碼表示
18.?? lengthUpwd? numeric(2);? --密碼長度
19.?? initCodeVal numeric(3);? --原始密碼每位上字符對(duì)應(yīng)的數(shù)值
20.?? targetCodeVal numeric(3);
21.?? BEGIN
22.
23.????? key?? := 3; --密鑰賦值
24.????? totalLetter := 26;????? --字母總數(shù)
25.????? targetCode? := '';????? --轉(zhuǎn)化后的字符
26.
27.
28.????? --獲取初始密鑰的長度
29.????? lengthUpwd := LENGTH(uPwd);
30.
31.????? --逐個(gè)對(duì)初始密鑰進(jìn)行加密
32.????? FOR i IN 1..lengthUpwd
33.? LOOP
34.
35.??? initCodeVal?? := ASCII(SUBSTR(uPwd,i,1) ) -96 ;
36.??? --如果替代后的字母超過了z
37.??? targetCodeVal := MOD((initCodeVal + key), totalLetter );
38.
39.??? --如果是字母z
40.??? IF targetCodeVal = 0 THEN
41.????? targetCodeVal := 26;
42.??? END IF;
43.
44.??? targetCodeVal := targetCodeVal + 96;
45.
46.??? --將加密后的字符拼裝
47.??? targetCode??? := targetCode || CHR(targetCodeVal);
48.? END LOOP;
49.
50.? --構(gòu)造一個(gè)sql語句
51.? insertSQL := 'INSERT INTO users (uName, uPwd ) VALUES('''
52.???? ||uName||''','''||targetCode||''')';
53.? EXECUTE IMMEDIATE TO_CHAR(insertSQL);
54.
55.?? END;
56.END pro_insert;
關(guān)鍵詞標(biāo)簽:Oracle數(shù)據(jù)庫
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法