欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP寫(xiě)的加密函數(shù),支持私人密鑰(詳細(xì)介紹)

 更新時(shí)間:2013年06月09日 16:02:03   作者:  
本篇文章是對(duì)PHP寫(xiě)的加密函數(shù)且支持私人密鑰進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
在開(kāi)發(fā)PHP系統(tǒng)時(shí),會(huì)員部分往往是一個(gè)必不可少的模塊,而密碼的處理又是不得不面對(duì)的問(wèn)題,PHP 的 Mcrypt 加密庫(kù)又需要額外設(shè)置,很多人都是直接使用md5()函數(shù)加密,這個(gè)方法的確安全,但是因?yàn)閙d5是不可逆加密,無(wú)法還原密碼,因此也有一些不便之處,本文介紹加密函數(shù)支持私鑰,用起來(lái)還是不錯(cuò)的.
代碼如下:
PHP:
復(fù)制代碼 代碼如下:

<ol><li class="li1"><div class="de1">&nbsp;</div>
</li>
<li class="li1"><div class="de1"><span class="kw2"><?php</span>
 </div>
</li>
<li class="li1"><div class="de1"><span class="co1">// 說(shuō)明:PHP 寫(xiě)的加密函數(shù),支持私人密鑰 </span>
</div>
</li>
<li class="li1"><div class="de1"><span class="co1">// 整理:http://www.dbjr.com.cn </span>
</div>
</li>
<li class="li2"><div class="de2">&nbsp;</div>
</li>
<li class="li1"><div class="de1"><span class="kw2">function</span>
 keyED<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$encrypt_key</span>
<span class="br0">)</span>
   </div>
</li>
<li class="li1"><div class="de1"><span class="br0">{</span>
   </div>
</li>
<li class="li1"><div class="de1">    <span class="re0">$encrypt_key</span>
 = <span class="kw3">md5</span>
<span class="br0">(</span>
<span class="re0">$encrypt_key</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="re0">$ctr</span>
=<span class="nu0">0</span>
;   </div>
</li>
<li class="li2"><div class="de2">    <span class="re0">$tmp</span>
 = <span class="st0">""</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="kw1">for</span>
 <span class="br0">(</span>
<span class="re0">$i</span>
=<span class="nu0">0</span>
;<span class="re0">$i</span>
<strlen<span class="br0">(</span>
<span class="re0">$txt</span>
<span class="br0">)</span>
;<span class="re0">$i</span>
++<span class="br0">)</span>
   </div>
</li>
<li class="li1"><div class="de1">    <span class="br0">{</span>
   </div>
</li>
<li class="li1"><div class="de1">        <span class="kw1">if</span>
 <span class="br0">(</span>
<span class="re0">$ctr</span>
==<span class="kw3">strlen</span>
<span class="br0">(</span>
<span class="re0">$encrypt_key</span>
<span class="br0">)</span>
<span class="br0">)</span>
 <span class="re0">$ctr</span>
=<span class="nu0">0</span>
;   </div>
</li>
<li class="li1"><div class="de1">        <span class="re0">$tmp</span>
.= <span class="kw3">substr</span>
<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$i</span>
,<span class="nu0">1</span>
<span class="br0">)</span>
 ^ <span class="kw3">substr</span>
<span class="br0">(</span>
<span class="re0">$encrypt_key</span>
,<span class="re0">$ctr</span>
,<span class="nu0">1</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li2"><div class="de2">        <span class="re0">$ctr</span>
++;   </div>
</li>
<li class="li1"><div class="de1">    <span class="br0">}</span>
   </div>
</li>
<li class="li1"><div class="de1">    <span class="kw1">return</span>
 <span class="re0">$tmp</span>
;   </div>
</li>
<li class="li1"><div class="de1"><span class="br0">}</span>
   </div>
</li>
<li class="li1"><div class="de1">&nbsp;</div>
</li>
<li class="li2"><div class="de2"><span class="kw2">function</span>
 encrypt<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$key</span>
<span class="br0">)</span>
   </div>
</li>
<li class="li1"><div class="de1"><span class="br0">{</span>
   </div>
</li>
<li class="li1"><div class="de1">    <span class="kw3">srand</span>
<span class="br0">(</span>
<span class="br0">(</span>
double<span class="br0">)</span>
<span class="kw3">microtime</span>
<span class="br0">(</span>
<span class="br0">)</span>
*<span class="nu0">1000000</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="re0">$encrypt_key</span>
 = <span class="kw3">md5</span>
<span class="br0">(</span>
<span class="kw3">rand</span>
<span class="br0">(</span>
<span class="nu0">0</span>
,<span class="nu0">32000</span>
<span class="br0">)</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="re0">$ctr</span>
=<span class="nu0">0</span>
;   </div>
</li>
<li class="li2"><div class="de2">    <span class="re0">$tmp</span>
 = <span class="st0">""</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="kw1">for</span>
 <span class="br0">(</span>
<span class="re0">$i</span>
=<span class="nu0">0</span>
;<span class="re0">$i</span>
<strlen<span class="br0">(</span>
<span class="re0">$txt</span>
<span class="br0">)</span>
;<span class="re0">$i</span>
++<span class="br0">)</span>
   </div>
</li>
<li class="li1"><div class="de1">    <span class="br0">{</span>
   </div>
</li>
<li class="li1"><div class="de1">        <span class="kw1">if</span>
 <span class="br0">(</span>
<span class="re0">$ctr</span>
==<span class="kw3">strlen</span>
<span class="br0">(</span>
<span class="re0">$encrypt_key</span>
<span class="br0">)</span>
<span class="br0">)</span>
 <span class="re0">$ctr</span>
=<span class="nu0">0</span>
;   </div>
</li>
<li class="li1"><div class="de1">        <span class="re0">$tmp</span>
.= <span class="kw3">substr</span>
<span class="br0">(</span>
<span class="re0">$encrypt_key</span>
,<span class="re0">$ctr</span>
,<span class="nu0">1</span>
<span class="br0">)</span>
 . <span class="br0">(</span>
<span class="kw3">substr</span>
<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$i</span>
,<span class="nu0">1</span>
<span class="br0">)</span>
 ^ <span class="kw3">substr</span>
<span class="br0">(</span>
<span class="re0">$encrypt_key</span>
,<span class="re0">$ctr</span>
,<span class="nu0">1</span>
<span class="br0">)</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li2"><div class="de2">        <span class="re0">$ctr</span>
++;   </div>
</li>
<li class="li1"><div class="de1">    <span class="br0">}</span>
   </div>
</li>
<li class="li1"><div class="de1">    <span class="kw1">return</span>
 keyED<span class="br0">(</span>
<span class="re0">$tmp</span>
,<span class="re0">$key</span>
<span class="br0">)</span>
; </div>
</li>
<li class="li1"><div class="de1"><span class="br0">}</span>
   </div>
</li>
<li class="li1"><div class="de1">&nbsp;</div>
</li>
<li class="li2"><div class="de2"><span class="kw2">function</span>
 decrypt<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$key</span>
<span class="br0">)</span>
   </div>
</li>
<li class="li1"><div class="de1"><span class="br0">{</span>
   </div>
</li>
<li class="li1"><div class="de1">    <span class="re0">$txt</span>
 = keyED<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$key</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="re0">$tmp</span>
 = <span class="st0">""</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="kw1">for</span>
 <span class="br0">(</span>
<span class="re0">$i</span>
=<span class="nu0">0</span>
;<span class="re0">$i</span>
<strlen<span class="br0">(</span>
<span class="re0">$txt</span>
<span class="br0">)</span>
;<span class="re0">$i</span>
++<span class="br0">)</span>
   </div>
</li>
<li class="li2"><div class="de2">    <span class="br0">{</span>
   </div>
</li>
<li class="li1"><div class="de1">        <span class="re0">$md5</span>
 = <span class="kw3">substr</span>
<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$i</span>
,<span class="nu0">1</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">        <span class="re0">$i</span>
++;   </div>
</li>
<li class="li1"><div class="de1">        <span class="re0">$tmp</span>
.= <span class="br0">(</span>
<span class="kw3">substr</span>
<span class="br0">(</span>
<span class="re0">$txt</span>
,<span class="re0">$i</span>
,<span class="nu0">1</span>
<span class="br0">)</span>
 ^ <span class="re0">$md5</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">    <span class="br0">}</span>
   </div>
</li>
<li class="li2"><div class="de2">    <span class="kw1">return</span>
 <span class="re0">$tmp</span>
;   </div>
</li>
<li class="li1"><div class="de1"><span class="br0">}</span>
  </div>
</li>
<li class="li1"><div class="de1">&nbsp;</div>
</li>
<li class="li1"><div class="de1"><span class="re0">$key</span>
 = <span class="st0">"www.yitu.org"</span>
;   </div>
</li>
<li class="li1"><div class="de1"><span class="re0">$string</span>
 = <span class="st0">"我是加密字符"</span>
;   </div>
</li>
<li class="li2"><div class="de2">&nbsp;</div>
</li>
<li class="li1"><div class="de1"><span class="co1">// encrypt $string, and store it in $enc_text   </span>
</div>
</li>
<li class="li1"><div class="de1"><span class="re0">$enc_text</span>
 = encrypt<span class="br0">(</span>
<span class="re0">$string</span>
,<span class="re0">$key</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">&nbsp;</div>
</li>
<li class="li1"><div class="de1"><span class="co1">// decrypt the encrypted text $enc_text, and store it in $dec_text   </span>
</div>
</li>
<li class="li2"><div class="de2"><span class="re0">$dec_text</span>
 = decrypt<span class="br0">(</span>
<span class="re0">$enc_text</span>
,<span class="re0">$key</span>
<span class="br0">)</span>
;   </div>
</li>
<li class="li1"><div class="de1">&nbsp;</div>
</li>
<li class="li1"><div class="de1"><span class="kw3">print</span>
 <span class="st0">"加密的 text : $enc_text <Br> "</span>
;   </div>
</li>
<li class="li1"><div class="de1"><span class="kw3">print</span>
 <span class="st0">"解密的 text : $dec_text <Br> "</span>
;   </div>
</li>
<li class="li1"><div class="de1"><span class="kw2">?></span>
 </div>
</li>
<li class="li2"><div class="de2">&nbsp;</div>
</li>
</ol>

每一次加密后的結(jié)果是不一樣的,大大加強(qiáng)了密碼的安全性.

相關(guān)文章

最新評(píng)論