久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 學院 > 邏輯算法 > 正文

PHP+MySQL應用中使用XOR運算加密算法

2024-09-08 23:18:44
字體:
來源:轉載
供稿:網友


  本文將介紹一個簡單易用的加密/解密算法:使用異或(xor)運算。本算法原理簡單,旨在使讀者對信息的加密/解密有一個更加直觀的印象。

  xor算法原理

  從加密的主要方法看,換位法過于簡單,特別是對于數據量少的情況很容易由密文猜出明文,而替換法不失為一種行之有效的簡易算法。

  從各種替換法運算的特點看,異或運算最適合用于簡易加解密運算,這種方法的原理是:當一個數a和另一個數b進行異或運算會生成另一個數c,如果再將c和b進行異或運算則c又會還原為a。

  相對于其他的簡易加密算法,xor算法的優點如下。

  (1)算法簡單,對于高級語言很容易能實現。

  (2)速度快,可以在任何時候、任何地方使用。

  (3)對任何字符都是有效的,不像有些簡易加密算法,只對西文字符有效,對中文加密后再解密無法還原為原來的字符。

  xor算法實現

  上一部分介紹了如何使用xor運算進行加密/解密的原理,本節將使用其加密用戶的登錄信息。根據上一小節介紹的xor加密算法的原理,不難寫出以下的加密解密函數。首先列出加密算法。

1 <!--encrypy_xor:簡單使用xor運算的加密函數----------------------->
2 <?php
3 //加密函數
4 function myencrypt($string, $key)
5 {
6 for($i=0; $i<strlen($string); p $i++)<>
7 {
8 for($j=0; $j<strlen($key); p $j++)<>
9 {
10 $string[$i] = $string[$i]^$key[$j];
11 }
12 }
13 return $string;
14 }

  第4行定義了加密函數myencrypt(),輸入參數$string為明文,而$key為密鑰;輸出為使用$key作為密鑰并使用xor加密算法產生的密文。

  第6~12行的外層for循環對明文字符串的每一個字符進行循環,而內層的for循環(第8~11行)對明文的每一字符循環與密鑰的每一位做異或運算。其原理已經在上一小節中介紹,不再重述。

  同樣,與加密函數類似,可以寫出下面的解密函數。

1 //解密函數
2 function mydecrypt($string, $key)
3 {
4 for($i=0; $i<strlen($string); p $i++)<>
5 {
6 for($j=0; $j<strlen($key); p $j++)<>
7 {
8 $string[$i] = $key[$j]^$string[$i];
9 }
10 }
11 return $string;
12 }
13 ?>

  第4行定義了解密函數mydecrypt (),輸入參數$string為密文,而$key為密鑰;輸出為使用$key作為密鑰并使用xor解密算法產生的明文。

  下面,通過一個應用示例來進一步說明加密函數的功能。

1 //示例
2 $my_password="chair";
3 echo "my_password = $my_password";
4 $my_key="1234567890";
5 $my_password_en=myencrypt($my_password,$my_key);
6 echo "my_password_en = $my_password_en";
7 $my_password_de=mydecrypt($my_password_en,$my_key);
8 echo "my_password_de = $my_password_de";

  第3行首先定義了一個明文$my_password,然后在第4行定義密鑰$my_key。

  第5、6行分別調用加密函數生成密文并輸出;反過來,又在第7、8行將密文解密。

  上面示例的運行結果如下。

  my_password = chair

  my_password_en = rypxc

  my_password_de = chair

  用xor算法實現身份驗證

  上兩部分分別介紹了使用xor運算進行信息加密/解密的原理和實現,下面,將使用這一方法來對用戶的登錄密碼進行加密。本例中,為了保護用戶的密碼,系統想要達到的目的如下。

  ·在用戶注冊時,用戶需要添寫用戶密碼表單。

  ·除用戶本人之外,其他任何人都無法獲取其密碼信息,包括系統設計者和數據庫管理員。

  ·系統能根據用戶輸入的密碼驗證用戶的合法性。

  為了達到以上目的,使用xor算法時可以選擇用戶名作為明文,而密鑰是用戶自定義的密碼,然后將加密后的用戶名存儲在數據庫中。

  另外,在用戶登錄的時候,有以下兩種方式來驗證合法用戶。

  (1)根據其提交的用戶名(明文)和密碼(密鑰)信息重新加密,并使用加密后的信息與數據庫中存儲的密碼信息進行比較,如果相等,則用戶合法,否則,為非法用戶。

  (2)根據數據庫中存儲的密碼信息(明文)和用戶輸入的密碼(密鑰)信息進行解密,并把加密后的信息與用戶提交的用戶名進行比較,如果相等,則用戶合法,否則,為非法用戶。

  兩種方式都可以實現第3個目的,本例,將采用第2種方式。本例的實現代碼可在18.4.1節“用戶登錄”和18.4.2節“檢查用戶”的實現基礎之上實現,其中“用戶登錄”頁面無需變化,“檢查用戶”的實現參考如下。

1 <?php
2 session_start(); //裝載session庫,一定要放在首行
3 $user_name=$_post["user_name"];
4 session_register("user_name"); //注冊$user_name變量,注意沒有$符號
5
6 require_once("sys_conf.inc"); //系統配置文件,包含數據庫配置信息
7 require_once("encrypy_xor.php"); //包含xor加密函數文件
8
9 //連接數據庫
10 $link_id=mysql_connect($dbhost,$dbuser,$dbpwd);
11 mysql_select_db($dbname); //選擇數據庫my_chat
12
13 //查詢是否存在登錄用戶信息
14 $str="select name,password from user where name ='$user_name'";
15 $result=mysql_query($str,$link_id); //執行查詢
16 @$rows=mysql_num_rows($result); //取得查詢結果的記錄筆數
17 $user_name=$_session["user_name"];
18 $password=$_post["password"];
19 $password_en=myencrypt($user_name,$password); //加密用戶信息
20
21 //對于老用戶
22 if($rows!=0)
23 {
24 list($name,$pwd)=mysql_fetch_row($result);
25 $password_de=mydecrypt($pwd,$password); //解密用戶信息
26
27 //如果密碼輸入正確
28 if($user_name==$password_de)
29 {
30 $str="update user set is_online =1 where name ='$user_name' and password='$password_en'";
31 $result=mysql_query($str, $link_id); //執行查詢
32 require("main.php"); //轉到聊天頁面
33 }
34 //密碼輸入錯誤
35 else
36 {
37 require("relogin.php");
38 }
39 }
40 //對于新用戶,將其信息寫入數據庫
41 else
42 {
43 $str="insert into user (name,password,is_online) values('$user_name', '$password_en',1)";
44 $result=mysql_query($str, $link_id); //執行查詢
45 require("main.php"); //轉到聊天頁面
46 }
47 //關閉數據庫
48 mysql_close($link_id);
49 ?>


  第7行引入了加密函數文件encrypy_xor.php,包括上一小節介紹的兩個函數。

  第19行,使用用戶提交的用戶名和密碼得到加密后的密碼值,并且對于新用戶,在第44行將這個加密后的值存儲在數據庫中。

  另外,對于老用戶,在第24獲取數據庫中用戶名和加密后的密碼信息,并在25行利用這兩個值進行解密,然后在第28行通過比較解密后的值與用戶提交的用戶名信息來檢查用戶的合法性。

  自動生成密鑰

  上一部分介紹了如何使用xor加密算法進行對用戶信息的加密,其中,用戶所輸入的口令信息實際上成為了加密算法中的密鑰,而用戶名作為明文使用,雖然這能很好地完成功能,但是在邏輯上,這種方法似乎有些不合理。

  本文將介紹一種自動生成密鑰的技術,可以使用自動生成的密鑰對用戶提交的密碼明文加密,使邏輯更加合理一些。

  本例,假設生成的密鑰為512位。代碼如下。

1 <!--keygen.php:自動生成密鑰------------------------------------>
2 <?php
3
4 //自動生成長度為$len的密鑰
5 function generate_key($len)
6 {
7 $lowerbound = 35 ;
8 $upperbound = 96 ;
9 $strmykey = "";
10
11 for($i=1;$i<=$len;$i++)
12 {
13 $rnd=rand(0,100); //產生隨機數
14 $k = (($upperbound - $lowerbound) + 1) * $rnd + $lowerbound;
15 $strmykey=$strmykey.$k;
16 }
17 return $strmykey;
18 }
19
20 //將密鑰寫入文件$file_name
21 function write_key($key,$file_name)
22 {
23 $filename="c:/key.txt";
24 $key=generate_key($key,512);
25
26 //使用添加模式打開$filename,文件指針將會在文件的末尾
27 if(!$handle=fopen($filename,'w'))
28 {
29 print"不能打開文件$filename";
30 exit;
31 }
32
33 //將$key寫入到我們打開的文件中。
34 if(!fwrite($handle,$key))
35 {
36 print"不能寫入到文件$filename";
37 exit;
38 }
39 fclose($handle);
40 }
41
42 //讀取密鑰文件中的密鑰
43 function get_key($file_name)
44 {
45 //打開文件
46 $fp = fopen ($file_name, "r");
47 $result="";
48 //逐行讀取
49 while (!feof($fp))
50 {
51 $buffer = fgets($fp, 4096);
52 $result=$result.$buffer;
53 }
54 return $result;
55 }
56
57 ///*
58 $keylocation = "c:/key.txt"; //保存密鑰的文件
59 $key="123456";
60 write_key($key,$keylocation);
61 echo get_key($keylocation);
62 //*/
63 ?>

  代碼包括3個函數。

  ·generate_key($len):自動生成長度為$len的密鑰

  ·write_key($key,$file_name):將密鑰寫入文件$file_name

  ·get_key($file_name):讀取密鑰文件$file_name中的密鑰值

  在使用時,當用戶第一次登錄系統時,自動為其生成密鑰值,對于這個密鑰值,可以有兩種方式來處理。

  (1)將其存入數據庫的某個字段中,這種方法的缺點是密鑰在數據庫中的安全性無法得到保證;

  (2)將這個密鑰保存在用戶本地的文件中,這樣就可以避免密鑰被別人獲取,但這種方式的缺點是,當用戶使用其他機器訪問系統時,就無法登錄。

  本例中,將使用第2種方式。

  具體地,上面代碼第11~18行通過生成隨機數的方式來不斷生成密鑰,并通過一個計算來增強其復雜性。其中的lowerbound和upperbound的數值其實就是你想使用來加密的ascii字符范圍。下面是生成的一個密鑰文件示例。

  208123915925183361116049369344372701567721435181102718332639307390344373445407

  524316475863232913993383189547474747394154915312639841226741894189965623523913

  011164730113445201935692839710274127251577929493941487145611337531549110895367

  593586318332391170941272701152344371709270125776235313540032267139933835677407

  617384135696111239130732949469623520815987524358635491542913374933524334454251

  400327015367133759324537171709152357391089524342514685239122673135531363151191

  833412771743139654…

  最后,需要把密鑰保存在服務器上一個安全的地方,然后就可以利用其和諸如xor這樣的加密算法來對用戶信息進行加密/解密了。如何在上一部分介紹的xor中使用這個密鑰非常簡單,不再詳述。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
在线小视频你懂的| 久久99精品国产91久久来源 | 99久久精品国产麻豆演员表| 国产乱女淫av麻豆国产| 日韩中文在线观看| 成人免费福利片| 小泽玛利亚一区二区免费| 国产专区一区二区| 欧美电影一区二区三区| 性感美女视频一二三| 神马久久久久久| www激情久久| 免费毛片在线播放免费| 国内外成人激情免费视频| 亚洲精品资源在线| 成人黄页毛片网站| 欧美激情黑白配| 色婷婷成人在线| 国产欧美在线视频| 欧美丰满一区二区免费视频| 激情另类小说区图片区视频区| 国产精品酒店视频| 青青草原国产免费| 国模私拍一区二区三区| 色婷婷国产精品综合在线观看| 国产后入清纯学生妹| 亚洲高清无码久久| 日本一区免费观看| 久久露脸国产精品| 精品视频一区二区三区免费| 国产v在线观看| 麻豆精品免费视频| 黄色网在线视频| 日产精品99久久久久久| 日韩欧美国产精品| 亚洲私人黄色宅男| 久久免费高清| 久久久久久久九九九九| 男人的天堂免费| 300部国产真实乱| 国产男人精品视频| 欧美日韩国产另类不卡| 国产一区在线观看视频| 国产又粗又猛又黄视频| 国产女主播在线播放| 欧美这里只有精品| 亚洲伊人久久大香线蕉av| 久久五月天综合| 欧美一级片免费看| 午夜不卡在线视频| 国产精品久久久久久亚洲毛片| 日本中文字幕不卡| 97成人在线观看| 天天做夜夜爱爱爱| 国产l精品国产亚洲区久久| 日韩精品伦理第一区| 成人黄色av播放免费| 国产**成人网毛片九色 | 亚洲一级二级片| 欧美成人免费观看| 两个人的视频www国产精品| 99国产在线观看| 成人黄色免费网站在线观看| 秋霞午夜一区二区| 国产999精品久久久| 欧美亚洲伦理www| 欧美一级视频免费在线观看| 91国产视频在线| 国产精品久久久久av免费| 日本一本a高清免费不卡| 国产精品私拍pans大尺度在线| 久久久久久久久久久成人| xvideos亚洲人网站| 欧美大秀在线观看| 国产精品免费电影| 日本精品二区| 亚洲精品一二三四五区| 男女啪啪免费观看| 少妇性l交大片| 69久久精品无码一区二区| 少妇无套高潮一二三区| 手机精品视频在线| 亚洲欧美日韩偷拍| 欧美福利在线视频| 亚洲va久久久噜噜噜久久狠狠| 精品免费国产| 男女啪啪的视频| 久久黄色片网站| 亚洲精品成人无码熟妇在线| 久草免费在线视频观看| 中文字幕在线观看1| 久久午夜精品| 91尤物视频在线观看| 亚洲图片欧美激情| 欧美色网一区二区| 一本一本久久a久久精品牛牛影视| 久久久久久久av| 国产精品香蕉视屏| 国产精品自拍合集| 国产无遮挡猛进猛出免费软件| 欧美日韩高清丝袜| 中文字幕永久在线观看| 激情深爱一区二区| 午夜在线成人av| 中文亚洲视频在线| 国产成人av一区二区三区| 九九爱精品视频| 天天操天天干天天操天天干| 亚洲AV无码成人片在线观看| 久久久夜色精品亚洲| 在线不卡一区二区| 欧美影院久久久| dy888午夜| 欧美丰满美乳xxⅹ高潮www| 国产肥老妇视频| 最新欧美精品一区二区三区| 亚洲男人天堂手机在线| 狠狠干一区二区| 久久人妻少妇嫩草av无码专区| 日本精品入口免费视频| 不卡av电影在线播放| 精品粉嫩aⅴ一区二区三区四区| 成人免费在线网址| 亚洲在线观看网站| 精品国产99久久久久久宅男i| 一区二区三区免费| 欧美一级视频在线观看| 超碰在线人人爱| 97国产成人无码精品久久久| 亚洲乱码国产乱码精品精可以看 | 青青影院一区二区三区四区| 日韩在线三级| 强制高潮抽搐sm调教高h| 26uuu色噜噜精品一区| 在线看片第一页欧美| 在线观看福利一区| 中文字幕 人妻熟女| 亚洲国产毛片aaaaa无费看| 国产欧美在线视频| 欧美肉大捧一进一出免费视频| 日本成人超碰在线观看| 日韩一区二区免费电影| 久久青青草原一区二区| 精品无码人妻一区二区三区| 国产精品久久久久久久第一福利| 成人亚洲欧美一区二区三区| 91传媒理伦片在线观看| 成人午夜视频福利| 国产精品精品一区二区三区午夜版 | 亚洲一区二区三区精品视频| 国产精品6666| 精品久久久久久久久久久| 91免费视频网站| 右手影院亚洲欧美| 国产精品色在线| 粉嫩精品一区二区三区在线观看| 九九视频在线观看| 8x福利精品第一导航| 久久人妻无码一区二区| 激情综合色播五月| 亚洲综合大片69999| 一本色道久久综合亚洲| 久久国产精品久久久久久| 久草国产在线观看| 亚洲午夜三级在线| 亚洲欧美综合一区| 人妻与黑人一区二区三区| 亚洲视频在线观看免费| 疯狂蹂躏欧美一区二区精品| 亚洲女人天堂av| 国产在线a视频| 久久精品亚洲精品国产欧美| 成人免费观看网站| 国产白浆在线观看| 精品国精品国产尤物美女| www.日本久久| 精品久久久视频| 国产成人亚洲精品无码h在线| 午夜av免费在线观看| 国产美女久久久| 国产福利资源在线| 性欧美xxxx| 91肉色超薄丝袜脚交一区二区| 亚洲视频999| 三级影片在线看| 日韩国产中文字幕| 久久一级免费视频| 日韩精品视频免费| 欧美色图亚洲天堂| 欧美一区二区网站| 少妇饥渴放荡91麻豆| 欧美日韩一区成人| 色婷婷精品久久二区二区密| 欧美无砖专区一中文字| 永久免费未满蜜桃| 91精品国产91热久久久做人人| 18禁一区二区三区| 欧美在线免费观看视频| 少妇户外露出[11p]| 欧美性20hd另类| 亚洲精品理论片| 亚洲第一免费网站| japanese在线观看| 亚洲国产精品热久久| 黄色一级片在线| 久久免费少妇高潮久久精品99| 正在播放亚洲精品| 国内精品**久久毛片app| 欧洲成人一区二区三区| 亚洲va男人天堂| 精品一区二区精品| 日本三级中国三级99人妇网站| 国产精品一品二品| 日本免费黄色小视频| **性色生活片久久毛片| 亚洲欧洲日本精品| 制服视频三区第一页精品| 免费观看a级片| 在线观看亚洲视频| 中文字幕无线码一区 | 亚洲欧美日韩国产中文专区| 一级黄色大片视频| 国产欧美一区二区三区视频| 日韩国产欧美在线视频| 日韩电影免费观看在| 午夜伦理一区二区| 91精品国自产在线| 精品小视频在线| 国产成人精品一区二区无码呦 | 亚洲精品中字| 亚洲成人你懂的| 精品在线观看一区| 欧美亚洲另类视频| 91丨porny丨首页| 亚洲天堂2024| 久久99国产精品久久久久久久久| 久久99精品网久久| 日本女人性视频| 精品中文字幕在线| 91小视频免费观看| www.av天天| 亚洲综合自拍一区| 欧美午夜无遮挡| 久久永久免费视频| 一区二区在线观| 亚洲精品xxxx| 成人av免费在线观看| 强伦人妻一区二区三区| 欧洲s码亚洲m码精品一区| 99精品桃花视频在线观看| 最新日本中文字幕| 国产精品成熟老女人| 亚洲色图在线播放| 久久机热这里只有精品| 国产私拍一区| 亚洲精品一区二区三区99| 日韩精品色哟哟| 国产伦精品一区二区三区妓女| 成人免费看片网站| 欧美影片第一页| 神马一区二区三区| 久久久极品av| 一区二区三区四区乱视频| 日本成人一级片| 欧美日韩第二页| 欧美与欧洲交xxxx免费观看 | 尤物精品国产第一福利三区| 国产精品自拍毛片| 免费在线观看国产精品| 国产一区在线观| 亚洲美女久久久| 中文字幕在线视频一区| 中文字幕二区三区| 女女调教被c哭捆绑喷水百合| 91久久精品一区二区| 亚洲精品久久久狠狠狠爱| 熟女少妇一区二区三区| 国产一级黄色录像片| 国产精品igao视频| 欧美日韩在线播放三区四区| 国产精品熟女一区二区不卡| 欧美孕妇与黑人孕交| 欧美一级高清片| 亚洲天堂a在线| 国产视频在线观看免费| 亚洲码无人客一区二区三区| 国产日韩av网站| 成人激情春色网| 精品国产依人香蕉在线精品| 精品久久久一区二区| 天堂资源在线视频| 一区二区三区欧美在线| 国产精品视频永久免费播放| 91国偷自产一区二区三区成为亚洲经典| 日韩av中文字幕一区二区| 亚洲一区二区观看| 怡红院av亚洲一区二区三区h| 91热福利电影| 欧美黄网免费在线观看| 欧美日韩在线电影| 亚洲欧美一区二区不卡| 久久精品男女| 亚洲天堂一二三| 久久久久人妻一区精品色| 国产亚洲色婷婷久久| 日日夜夜精品网站| 69**夜色精品国产69乱| 亚洲精品成a人在线观看| 欧美日韩一级片网站| 亚洲色图丝袜美腿| 成人爱爱电影网址| 久久国产精品一区二区| 手机av免费在线观看| 国产又大又黄又粗| www.毛片com| 日本三级免费网站| 麻豆精品传媒视频| 不卡视频一区二区三区| 91免费看网站| 高清一区二区三区视频| 国产精品爽黄69| 国产精品1区2区在线观看| 欧洲精品在线视频| 国产91精品久久久| 欧美激情一级欧美精品| 欧美激情久久久| 久久精彩免费视频| 啊v视频在线一区二区三区 | 中国精品一区二区| 中文在线资源天堂| 激情五月少妇a| 精品女人久久久| www.国产高清| 欧美日韩一二三四区| 国产真实乱偷精品视频| 亚洲天堂一区在线| 中文字幕自拍偷拍| 农村少妇久久久久久久| 国产人妻精品一区二区三| 午夜精品久久久久久久96蜜桃| 日韩影院免费视频| 成人高清在线视频| 中文字幕 久热精品 视频在线 | 精品一区二区综合| 成人午夜精品一区二区三区| 国产精品一二三四区| 国产精品国产三级国产aⅴ入口 | 亚洲欧美国产视频| 日韩视频免费在线观看| 国内免费久久久久久久久久久| 91精品久久久久久久久久久久久| 美乳视频一区二区| 国产免费黄色av| 特大黑人巨人吊xxxx| 大吊一区二区三区| 中文字幕在线日本| 日韩国产欧美一区二区三区| 久久综合九色综合97_久久久| 一区二区三区美女视频| 欧美一区二区日韩一区二区| 日韩视频在线观看免费| 高清欧美性猛交xxxx黑人猛交| 欧美情侣性视频| 日韩欧美视频一区二区| 欧美熟妇精品一区二区| 欧美a视频在线观看| 国产尤物一区二区在线| 亚洲一区二区三区视频在线播放 | 91久久精品日日躁夜夜躁欧美| 日韩在线免费视频观看| 欧美大香线蕉线伊人久久| 69久久精品无码一区二区| 日韩国产亚洲欧美| 国产人妖乱国产精品人妖| 亚洲天堂av在线免费观看| 久久久精品国产一区二区三区| 国产精品88久久久久久妇女| 偷拍女澡堂一区二区三区| 日产国产高清一区二区三区| 91黄视频在线观看| 国产精品88a∨| 国产亚洲精品成人a| 天堂在线观看av| 日韩一区二区在线观看视频| 成人欧美一区二区| 欧美图片一区二区| 国产成人午夜高潮毛片| 亚洲日本中文字幕| 亚洲成人网上| 看黄色录像一级片| 99视频精品免费视频| 中文字幕免费精品一区| 麻豆91蜜桃| 日本视频免费观看| 一本久道久久综合中文字幕| 国产精品日韩二区| 色婷婷粉嫩av| 亚洲国产精品欧美一二99| 成人91免费视频| 日韩av无码中文字幕| 欧美日韩中文在线| 精品欧美日韩| 久久久久在线视频| 欧美在线999| 懂色av一区二区三区四区五区| 国产丰满美女做爰| 亚洲欧洲高清在线| 久久精品亚洲天堂| 国产一区三区三区| 91高清免费在线观看|