關於Oracle數據庫替代加密算法
- Oracle認證
- 關注:2.52W次
替代密碼算法的原理是使用替代法進行加密,就是將明文中的字符用其它字符替代 後形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做對應替換後形成密文。
這裏在Oracle的存儲過程,通過替換加密算法來實現密碼存入數據庫時的加密。
1.--------------------------------
2.--------------------------------
3.--Oracle數據庫加密----替代算法---
4.--
5.--------------------------------
TE OR REPLACE PROCEDURE pro_insert(
7. uName IN e%TYPE, --用户名
8. uPwd IN %TYPE --密碼,這個要加密
9.) IS
N
11.
12.--定義變量
ARE
14. insertSQL nvarchar2(200 ); --一個待構造的sql語句
15. key numeric(2); --密鑰
16. totALLetter numeric(2); --字母的總個數
17. targetCode nvarchar2(15); --轉化後的字符密碼錶示
18. lengthUpwd numeric(2); --密碼長度
19. initCodeVal numeric(3); --原始密碼每位上字符對應的數值
20. targetCodeVal numeric(3);
21. BEGIN
22.
23. key := 3; --密鑰賦值
24. totalLetter := 26; --字母總數
25. targetCode := ''; --轉化後的'字符
26.
27.
28. --獲取初始密鑰的長度
29. lengthUpwd := LENGTH(uPwd);
30. 31. --逐個對初始密鑰進行加密
32. FOR i IN thUpwd
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. --構造一個sql語句
51. insertSQL := 'INSERT INTO users (uName, uPwd ) VALUES('''
52. ||uName||''','''||targetCode||''')';
53. EXECUTE IMMEDIATE TO_CHAR(insertSQL);
54.
55. END;
pro_insert;
- 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-hk/itrz/oracle/ej15e9.html