国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP寫的加密函數,支持私人密鑰(詳細介紹)

2024-05-04 23:10:35
字體:
來源:轉載
供稿:網友
在開發PHP系統時,會員部分往往是一個必不可少的模塊,而密碼的處理又是不得不面對的問題,PHP 的 Mcrypt 加密庫又需要額外設置,很多人都是直接使用md5()函數加密,這個方法的確安全,但是因為md5是不可逆加密,無法還原密碼,因此也有一些不便之處,本文介紹加密函數支持私鑰,用起來還是不錯的.
代碼如下:
PHP:

復制代碼 代碼如下:


<ol><li><div> </div>
</li>
<li><div><span><?php</span>
</div>
</li>
<li><div><span>// 說明:PHP 寫的加密函數,支持私人密鑰 </span>
</div>
</li>
<li><div><span>// 整理: </span>
</div>
</li>
<li><div> </div>
</li>
<li><div><span>function</span>
keyED<span>(</span>
<span>$txt</span>
,<span>$encrypt_key</span>
<span>)</span>
</div>
</li>
<li><div><span>{</span>
</div>
</li>
<li><div> <span>$encrypt_key</span>
= <span>md5</span>
<span>(</span>
<span>$encrypt_key</span>
<span>)</span>
; </div>
</li>
<li><div> <span>$ctr</span>
=<span>0</span>
; </div>
</li>
<li><div> <span>$tmp</span>
= <span>""</span>
; </div>
</li>
<li><div> <span>for</span>
<span>(</span>
<span>$i</span>
=<span>0</span>
;<span>$i</span>
<strlen<span>(</span>
<span>$txt</span>
<span>)</span>
;<span>$i</span>
++<span>)</span>
</div>
</li>
<li><div> <span>{</span>
</div>
</li>
<li><div><span>if</span>
<span>(</span>
<span>$ctr</span>
==<span>strlen</span>
<span>(</span>
<span>$encrypt_key</span>
<span>)</span>
<span>)</span>
<span>$ctr</span>
=<span>0</span>
; </div>
</li>
<li><div><span>$tmp</span>
.= <span>substr</span>
<span>(</span>
<span>$txt</span>
,<span>$i</span>
,<span>1</span>
<span>)</span>
^ <span>substr</span>
<span>(</span>
<span>$encrypt_key</span>
,<span>$ctr</span>
,<span>1</span>
<span>)</span>
; </div>
</li>
<li><div><span>$ctr</span>
++; </div>
</li>
<li><div> <span>}</span>
</div>
</li>
<li><div> <span>return</span>
<span>$tmp</span>
; </div>
</li>
<li><div><span>}</span>
</div>
</li>
<li><div> </div>
</li>
<li><div><span>function</span>
encrypt<span>(</span>
<span>$txt</span>
,<span>$key</span>
<span>)</span>
</div>
</li>
<li><div><span>{</span>
</div>
</li>
<li><div> <span>srand</span>
<span>(</span>
<span>(</span>
double<span>)</span>
<span>microtime</span>
<span>(</span>
<span>)</span>
*<span>1000000</span>
<span>)</span>
; </div>
</li>
<li><div> <span>$encrypt_key</span>
= <span>md5</span>
<span>(</span>
<span>rand</span>
<span>(</span>
<span>0</span>
,<span>32000</span>
<span>)</span>
<span>)</span>
; </div>
</li>
<li><div> <span>$ctr</span>
=<span>0</span>
; </div>
</li>
<li><div> <span>$tmp</span>
= <span>""</span>
; </div>
</li>
<li><div> <span>for</span>
<span>(</span>
<span>$i</span>
=<span>0</span>
;<span>$i</span>
<strlen<span>(</span>
<span>$txt</span>
<span>)</span>
;<span>$i</span>
++<span>)</span>
</div>
</li>
<li><div> <span>{</span>
</div>
</li>
<li><div><span>if</span>
<span>(</span>
<span>$ctr</span>
==<span>strlen</span>
<span>(</span>
<span>$encrypt_key</span>
<span>)</span>
<span>)</span>
<span>$ctr</span>
=<span>0</span>
; </div>
</li>
<li><div><span>$tmp</span>
.= <span>substr</span>
<span>(</span>
<span>$encrypt_key</span>
,<span>$ctr</span>
,<span>1</span>
<span>)</span>
. <span>(</span>
<span>substr</span>
<span>(</span>
<span>$txt</span>
,<span>$i</span>
,<span>1</span>
<span>)</span>
^ <span>substr</span>
<span>(</span>
<span>$encrypt_key</span>
,<span>$ctr</span>
,<span>1</span>
<span>)</span>
<span>)</span>
; </div>
</li>
<li><div><span>$ctr</span>
++; </div>
</li>
<li><div> <span>}</span>
</div>
</li>
<li><div> <span>return</span>
keyED<span>(</span>
<span>$tmp</span>
,<span>$key</span>
<span>)</span>
; </div>
</li>
<li><div><span>}</span>
</div>
</li>
<li><div> </div>
</li>
<li><div><span>function</span>
decrypt<span>(</span>
<span>$txt</span>
,<span>$key</span>
<span>)</span>
</div>
</li>
<li><div><span>{</span>
</div>
</li>
<li><div> <span>$txt</span>
= keyED<span>(</span>
<span>$txt</span>
,<span>$key</span>
<span>)</span>
; </div>
</li>
<li><div> <span>$tmp</span>
= <span>""</span>
; </div>
</li>
<li><div> <span>for</span>
<span>(</span>
<span>$i</span>
=<span>0</span>
;<span>$i</span>
<strlen<span>(</span>
<span>$txt</span>
<span>)</span>
;<span>$i</span>
++<span>)</span>
</div>
</li>
<li><div> <span>{</span>
</div>
</li>
<li><div><span>$md5</span>
= <span>substr</span>
<span>(</span>
<span>$txt</span>
,<span>$i</span>
,<span>1</span>
<span>)</span>
; </div>
</li>
<li><div><span>$i</span>
++; </div>
</li>
<li><div><span>$tmp</span>
.= <span>(</span>
<span>substr</span>
<span>(</span>
<span>$txt</span>
,<span>$i</span>
,<span>1</span>
<span>)</span>
^ <span>$md5</span>
<span>)</span>
; </div>
</li>
<li><div> <span>}</span>
</div>
</li>
<li><div> <span>return</span>
<span>$tmp</span>
; </div>
</li>
<li><div><span>}</span>
</div>
</li>
<li><div> </div>
</li>
<li><div><span>$key</span>
= <span>"www.yitu.org"</span>
; </div>
</li>
<li><div><span>$string</span>
= <span>"我是加密字符"</span>
; </div>
</li>
<li><div> </div>
</li>
<li><div><span>// encrypt $string, and store it in $enc_text </span>
</div>
</li>
<li><div><span>$enc_text</span>
= encrypt<span>(</span>
<span>$string</span>
,<span>$key</span>
<span>)</span>
; </div>
</li>
<li><div> </div>
</li>
<li><div><span>// decrypt the encrypted text $enc_text, and store it in $dec_text </span>
</div>
</li>
<li><div><span>$dec_text</span>
= decrypt<span>(</span>
<span>$enc_text</span>
,<span>$key</span>
<span>)</span>
; </div>
</li>
<li><div> </div>
</li>
<li><div><span>print</span>
<span>"加密的 text : $enc_text <Br> "</span>
; </div>
</li>
<li><div><span>print</span>
<span>"解密的 text : $dec_text <Br> "</span>
; </div>
</li>
<li><div><span>?></span>
</div>
</li>
<li><div> </div>
</li>
</ol>


每一次加密后的結果是不一樣的,大大加強了密碼的安全性.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰都县| 琼结县| 徐闻县| 周口市| 芜湖市| 灯塔市| 舞钢市| 平谷区| 河南省| 台中市| 吉隆县| 石泉县| 阿合奇县| 醴陵市| 丁青县| 西充县| 彭山县| 碌曲县| 厦门市| 拜城县| 天峨县| 南岸区| 卢氏县| 遵义市| 浦江县| 漳平市| 旬邑县| 信丰县| 义马市| 高碑店市| 洞口县| 建阳市| 伊春市| 隆化县| 梅河口市| 张家界市| 顺昌县| 洛隆县| 秦皇岛市| 大竹县| 台东市|