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

實(shí)用的PHP帶公鑰加密類分享(每次加密結(jié)果都不一樣哦)

 更新時(shí)間:2014年08月20日 11:35:02   作者:瓊臺(tái)  
這篇文章主要介紹了實(shí)用的PHP帶公鑰加密類分享,本類實(shí)現(xiàn)每次的加密結(jié)果都不一樣,但解密沒(méi)有問(wèn)題,非常實(shí)用的一個(gè)加密類,需要的朋友可以參考下

WEB交互安全一直是個(gè)各大網(wǎng)站的首要解決方案,本文介紹的PHP加密類非常實(shí)用哦,帶有公鑰,這是最大的亮點(diǎn),沒(méi)有公鑰是不能解密的,加密度非常高。

類代碼:

<?php
/**
 * PHP加密類
 * 瓊臺(tái)博客
 */
class Jiami{
  // 公鑰
  protected $key = 'lee'; 
  private function keyED($txt,$encrypt_key){
    $encrypt_key = md5($encrypt_key);
    $ctr=0;
    $tmp = '';
    for ($i=0;$i<strlen($txt);$i++){
      if ($ctr==strlen($encrypt_key)){
        $ctr=0;
      }
      $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
      $ctr++;
    }
    return $tmp;
  }
 
  public function encrypt($txt,$key=''){
    if(empty($key)){
      $key=$this->key;
    }
    srand((double)microtime()*1000000);
    $encrypt_key = md5(rand(0,32000));
    $ctr=0;
    $tmp = '';
    for ($i=0;$i<strlen($txt);$i++) {
      if ($ctr==strlen($encrypt_key)){
        $ctr=0;
      }
      $tmp.= substr($encrypt_key,$ctr,1).(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
      $ctr++;
    }
    return $this->keyED($tmp,$key);
  }
 
  public function decrypt($txt,$key=''){
    if(empty($key)){
      $key=$this->key;
    }
 
    $txt = $this->keyED($txt,$key);
    $tmp = '';
    for ($i=0;$i<strlen($txt);$i++){
      $md5 = substr($txt,$i,1);
      $i++;
      $tmp.= (substr($txt,$i,1) ^ $md5);
    }
    return $tmp;
  }
 
  public function setKey($key){
    if(empty($key)){
      return null;
    }
    $this->key=$key;
  }
 
  public function getPK(){
    return $this->key;
  }
 
}

使用方法:

<?php
// 先包含加密類
require_once('jiami.class.php');
 
// 要加密的字符串
$string = 'http://www.dbjr.com.cn';
 
// 實(shí)例化加密類
$jiami= new Jiami();
 
// 設(shè)置公鑰
$jiami->setKey('qttc');
 
// 加密字符串
$enc = $jiami->encrypt($string,$jiami->getPK());
 
// 解密字符串
$dec = $jiami->decrypt($enc,$jiami->getPK());
 
echo '<meta charset="utf-8" />';
echo '加密前 : '.$string .'<br/>';
echo '加密后 : '.$enc .'<br/>';
echo '解密后 : '.$dec;
?>

頁(yè)面執(zhí)行結(jié)果

結(jié)果1:

結(jié)果2:

由以上結(jié)果可以看到,每次加密產(chǎn)生的加密字符串都不一樣,這是隨機(jī)的。
解密的時(shí)候,需要使用加密時(shí)的公鑰,否則無(wú)法解密。如你這邊加密公鑰使用‘qttc',解密的時(shí)候,也需要使用這個(gè)'qttc'作為公鑰去解密,否則無(wú)法解密。

相關(guān)文章

最新評(píng)論