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

溫馨提示×

溫馨提示×

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

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

如何在PHP中實現一個DES加密解密封裝類

發布時間:2021-02-25 14:42:09 來源:億速云 閱讀:180 作者:戴恩恩 欄目:開發技術

這篇文章主要為大家詳細介紹了如何在PHP中實現一個DES加密解密封裝類,文中示例代碼介紹的非常詳細,具有一定的參考價值,發現的小伙伴們可以參考一下:

php有什么用

php是一個嵌套的縮寫名稱,指的是英文超級文本預處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。

具體如下:

<?php
/**
* PHP版DES加解密類
* 可與java的DES(DESede/CBC/PKCS5Padding)加密方式兼容
*
*/
class CryptDes {
   var $key;
   var $iv;
   function CryptDes($key, $iv){
    $this->key = $key;
    $this->iv = $iv;
   }
   function encrypt($input){
     $size = mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_CBC); //3DES加密將MCRYPT_DES改為MCRYPT_3DES
     $input = $this->pkcs5_pad($input, $size); //如果采用PaddingPKCS7,請更換成PaddingPKCS7方法。
     $key = str_pad($this->key,8,'0'); //3DES加密將8改為24
     $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
     if( $this->iv == '' )
     {
       $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
     }
     else
     {
       $iv = $this->iv;
     }
     @mcrypt_generic_init($td, $key, $iv);
     $data = mcrypt_generic($td, $input);
     mcrypt_generic_deinit($td);
     mcrypt_module_close($td);
     $data = base64_encode($data);//如需轉換二進制可改成 bin2hex 轉換
     return $data;
   }
   function decrypt($encrypted){
     $encrypted = base64_decode($encrypted); //如需轉換二進制可改成 bin2hex 轉換
     $key = str_pad($this->key,8,'0'); //3DES加密將8改為24
     $td = mcrypt_module_open(MCRYPT_DES,'',MCRYPT_MODE_CBC,'');//3DES加密將MCRYPT_DES改為MCRYPT_3DES
     if( $this->iv == '' )
     {
       $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
     }
     else
     {
       $iv = $this->iv;
     }
     $ks = mcrypt_enc_get_key_size($td);
     @mcrypt_generic_init($td, $key, $iv);
     $decrypted = mdecrypt_generic($td, $encrypted);
     mcrypt_generic_deinit($td);
     mcrypt_module_close($td);
     $y=$this->pkcs5_unpad($decrypted);
     return $y;
   }
   function pkcs5_pad ($text, $blocksize) {
     $pad = $blocksize - (strlen($text) % $blocksize);
     return $text . str_repeat(chr($pad), $pad);
   }
   function pkcs5_unpad($text){
     $pad = ord($text{strlen($text)-1});
     if ($pad > strlen($text)) {
       return false;
     }
     if (strspn($text, chr($pad), strlen($text) - $pad) != $pad){
       return false;
     }
     return substr($text, 0, -1 * $pad);
   }
   function PaddingPKCS7($data) {
     $block_size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);//3DES加密將MCRYPT_DES改為MCRYPT_3DES
     $padding_char = $block_size - (strlen($data) % $block_size);
     $data .= str_repeat(chr($padding_char),$padding_char);
     return $data;
   }
}
$des = new CryptDes("12345678","12345678");//(秘鑰向量,混淆向量)
echo $ret = $des->encrypt("1111");//加密字符串
?>

以上就是億速云小編為大家收集整理的如何在PHP中實現一個DES加密解密封裝類,如何覺得億速云網站的內容還不錯,歡迎將億速云網站推薦給身邊好友。

向AI問一下細節

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

AI

尤溪县| 沙河市| 镇远县| 平阳县| 衡阳县| 灵山县| 余姚市| 藁城市| 百色市| 分宜县| 丘北县| 建瓯市| 隆子县| 虹口区| 长宁县| 满城县| 上高县| 双峰县| 西宁市| 女性| 青冈县| 祥云县| 合作市| 荣成市| 阜康市| 绥中县| 鹤壁市| 成都市| 绵竹市| 澄迈县| 康保县| 巍山| 通许县| 长兴县| 新巴尔虎左旗| 合山市| 溧水县| 高清| 获嘉县| 贡山| 廉江市|