當前位置:學者齋 >

IT認證 >Oracle認證 >

關於Oracle資料庫替代加密演算法

關於Oracle資料庫替代加密演算法

替代密碼演算法的原理是使用替代法進行加密,就是將明文中的字元用其它字元替代 後形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做對應替換後形成密文。

關於Oracle資料庫替代加密演算法

這裡在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-tw/itrz/oracle/ej15e9.html