萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php加密算法之實現可逆加密算法和解密分享

php加密算法之實現可逆加密算法和解密分享

 對於大部分密碼加密,我們可以采用md5、sha1等方法。可以有效防止數據洩露,但是這些方法僅適用於無需還原的數據加密。對於需要還原的信息,則需要采用可逆的加密解密算法,下面一組PHP函數是實現此加密解密的方法

加密算法如下:   代碼如下: function encrypt($data, $key) {  $key = md5($key);     $x  = 0;     $len = strlen($data);     $l  = strlen($key);     for ($i = 0; $i < $len; $i++)     {         if ($x == $l)          {          $x = 0;         }         $char .= $key{$x};         $x++;     }     for ($i = 0; $i < $len; $i++)     {         $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);     }     return base64_encode($str); }     解密算法如下:      代碼如下: function decrypt($data, $key) {  $key = md5($key);     $x = 0;     $data = base64_decode($data);     $len = strlen($data);     $l = strlen($key);     for ($i = 0; $i < $len; $i++)     {         if ($x == $l)          {          $x = 0;         }         $char .= substr($key, $x, 1);         $x++;     }     for ($i = 0; $i < $len; $i++)     {         if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))         {             $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));         }         else         {             $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));         }     }     return $str; }     上述加密解密的過程均需要用到一個加密密鑰(即參數$key)。   代碼如下: $data = 'PHP加密解密算法';  // 被加密信息 $key = '123';     // 密鑰 $encrypt = encrypt($data, $key); $decrypt = decrypt($encrypt, $key); echo $encrypt, "n", $decrypt;     上述將輸出類似如下結果:    代碼如下: gniCSOzZG+HnS9zcFea7SefNGhXF PHP加密解密算法     從上述結果可以看出,這是一組可逆的加密解密算法,可以用於部分需要還原的數據加密。  
copyright © 萬盛學電腦網 all rights reserved