国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP實現的DES加密解密類定義與用法示例

2024-05-05 00:04:45
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的DES加密解密類定義與用法。分享給大家供大家參考,具體如下:

今天寫App接口的時候需要傳遞加密數據給APP端,于是就寫了下面的DES加密類,親測正確代碼如下

class CryptDes {  function __construct(){    $this->key = 'codelovers'; //密鑰    $this->iv = '15548632'; //偏移量  }  /*   * 加密   */  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;  }}

用法如下:

$str = 'm.survivalescaperooms.com';$des = new CryptDes();$mres = $des->encrypt($str); //加密echo $mres."<br/>";$jres = $des->decrypt($mres); //解密echo $jres."<br/>";

運行結果:

TxqbmhK86YWdTtTAQoDOqA==
m.survivalescaperooms.com

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 来宾市| 麻江县| 县级市| 静宁县| 万州区| 平和县| 星座| 宝兴县| 南阳市| 海阳市| 富宁县| 商水县| 枣庄市| 垣曲县| 昭觉县| 枞阳县| 清涧县| 虹口区| 资阳市| 广南县| 宁蒗| 赤峰市| 防城港市| 宿迁市| 遂昌县| 济宁市| 龙游县| 穆棱市| 海城市| 永康市| 察哈| 广安市| 监利县| 福海县| 理塘县| 北流市| 东辽县| 罗源县| 潍坊市| 阿尔山市| 财经|