91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用PHP實現帶公鑰加密類

發布時間:2021-09-29 14:41:56 來源:億速云 閱讀:124 作者:小新 欄目:開發技術

這篇文章主要介紹了如何使用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 = 'https://www.jb51.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;
?>

頁面執行結果

結果1:

如何使用PHP實現帶公鑰加密類

結果2:

如何使用PHP實現帶公鑰加密類

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

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用PHP實現帶公鑰加密類”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

兖州市| 绍兴县| 双辽市| 黎川县| 新宁县| 麻江县| 紫金县| 宜丰县| 巨鹿县| 库尔勒市| 晋州市| 六枝特区| 井冈山市| 武强县| 舞阳县| 香港| 广西| 镇平县| 兴业县| 扶风县| 浦东新区| 钟山县| 清原| 东港市| 上杭县| 丹巴县| 安西县| 潮安县| 新乡县| 建宁县| 乌拉特后旗| 沙河市| 平谷区| 桃园市| 石河子市| 安新县| 广西| 龙门县| 泰来县| 津南区| 桂阳县|