oracle中文加密算法,Oracle数据库替代加密算法
替代密碼算法的原理是使用替代法進行加密,就是將明文中的字符用其它字符替代 后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做對應替換后形成密文。
這里在Oracle的存儲過程,通過替換加密算法來實現密碼存入數據庫時的加密。
1.--------------------------------
2.--------------------------------
3.--Oracle數據庫加密----替代算法---
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???????????? --密碼,這個要加密
9.) IS
10.BEGIN
11.
12.--定義變量
13.DECLARE
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 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.??????? --構造一個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;
總結
以上是生活随笔為你收集整理的oracle中文加密算法,Oracle数据库替代加密算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年度十大科学突破:人工智能可预测
- 下一篇: oracle体系结构和组件图示,Orac