最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

WEB交互安全一直是個各大網站的首要解決方案,本文介紹的PHP加密類非常實用哦,帶有公鑰,這是最大的亮點,沒有公鑰是不能解密的,加密度非常高。

類代碼:

<?php
/**
 * PHP加密類
 * 瓊臺博客
 */
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://m.fzitv.net';
 
// 實例化加密類
$jiami= new Jiami();
 
// 設置公鑰
$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;
?>

頁面執(zhí)行結果

結果1:

結果2:

由以上結果可以看到,每次加密產生的加密字符串都不一樣,這是隨機的。
解密的時候,需要使用加密時的公鑰,否則無法解密。如你這邊加密公鑰使用‘qttc',解密的時候,也需要使用這個'qttc'作為公鑰去解密,否則無法解密。

相關文章

  • Linux基于php-fpm模式的lamp搭建phpmyadmin的方法

    Linux基于php-fpm模式的lamp搭建phpmyadmin的方法

    這篇文章主要介紹了Linux基于php-fpm模式的lamp搭建phpmyadmin的方法,以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
    2018-10-10
  • 微信支付開發(fā)訂單查詢實例

    微信支付開發(fā)訂單查詢實例

    本篇文章主要介紹微信支付中訂單查詢功能的實現,并提供代碼實例,希望能幫助到微信支付開發(fā)的小伙伴
    2016-07-07
  • php 二維數組快速排序算法的實現代碼

    php 二維數組快速排序算法的實現代碼

    這篇文章主要介紹了php 二維數組快速排序算法的實現代碼的相關資料,希望通過本文能幫助到大家,讓大家實現這樣的功能,需要的朋友可以參考下
    2017-10-10
  • php實現base64圖片上傳方式實例代碼

    php實現base64圖片上傳方式實例代碼

    本篇文章主要介紹了php實現base64圖片上傳方式實例代碼,這里整理了詳細的代碼,具有一定的參考價值,有需要的小伙伴可以參考下。
    2017-02-02
  • PHP實現搜索地理位置及計算兩點地理位置間距離的實例

    PHP實現搜索地理位置及計算兩點地理位置間距離的實例

    這篇文章主要介紹了PHP實現搜索地理位置及計算兩點地理位置間距離的實例,地理位置搜尋的例子中使用到了MongoDB數據庫,需要的朋友可以參考下
    2016-01-01
  • thinkPHP5.0框架API優(yōu)化后的友好性分析

    thinkPHP5.0框架API優(yōu)化后的友好性分析

    這篇文章主要介紹了thinkPHP5.0框架API優(yōu)化后的友好性,結合具體實例分析了thinkPHP5.0框架進行API優(yōu)化后在數據輸出及錯誤調試方面的友好性改進,需要的朋友可以參考下
    2017-03-03
  • CodeIgniter框架過濾HTML危險代碼

    CodeIgniter框架過濾HTML危險代碼

    這篇文章主要介紹了CodeIgniter框架過濾HTML危險代碼,需要的朋友可以參考下
    2014-06-06
  • Zend Framework數據庫操作技巧總結

    Zend Framework數據庫操作技巧總結

    這篇文章主要介紹了Zend Framework數據庫操作技巧,結合實例形式總結分析了Zend Framework針對數據庫操作的常見函數、常用操作及相關注意事項,需要的朋友可以參考下
    2017-02-02
  • 基于ThinkPHP5.0實現圖片上傳插件

    基于ThinkPHP5.0實現圖片上傳插件

    thinkphp5.0 圖片上傳插件可預覽裁剪圖片和保存原圖片,執(zhí)行裁剪圖片后會刪除 裁剪的原圖片目錄,以便減少空間。具體實現代碼大家參考下本文
    2017-09-09
  • PHP實現兩種排課方式

    PHP實現兩種排課方式

    這篇文章主要介紹了PHP實現兩種排課方式,第一種排課方式比較好理解,開始時間和結束時間,第二種比較復雜一些,有開始上課時間和結束上課時間和第幾周,具體實現代碼參考下本文
    2021-06-06

最新評論

平江县| 冕宁县| 宾阳县| 邵阳县| 迁安市| 大理市| 长治市| 富阳市| 策勒县| 左云县| 金门县| 化州市| 通州区| 长治市| 明水县| 江安县| 称多县| 乐东| 太和县| 家居| 临西县| 台南县| 奎屯市| 庆阳市| 西安市| 武胜县| 瑞金市| 休宁县| 阿巴嘎旗| 龙游县| 英山县| 韩城市| 武胜县| 郯城县| 新丰县| 东方市| 仁化县| 屯留县| 江川县| 黄大仙区| 来宾市|