IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁數(shù)據(jù)庫Oracle → Oracle數(shù)據(jù)庫替代加密算法

Oracle數(shù)據(jù)庫替代加密算法

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

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

  這里在oracle的存儲過程,通過替換加密算法來實現(xiàn)密碼存入數(shù)據(jù)庫時的加密。

  1.--------------------------------

  2.--------------------------------

  3.--Oracle數(shù)據(jù)庫加密----替代算法---

  4.--https://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 );   --一個待構(gòu)造的sql語句

  15.   key   numeric(2);  --密鑰

  16.   totalLetter numeric(2);  --字母的總個數(shù)

  17.   targetcode   nvarchar2(15);     --轉(zhuǎn)化后的字符密碼表示

  18.   lengthUpwd  numeric(2);  --密碼長度

  19.   initCodeVal numeric(3);  --原始密碼每位上字符對應(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.      --逐個對初始密鑰進行加密

  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)造一個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)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制Oracle對user的訪問控制

相關(guān)下載

人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限