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

PHP實(shí)現(xiàn)的DES加密解密類定義與用法示例

 更新時(shí)間:2020年11月02日 14:12:04   作者:編程愛好者之家  
這篇文章主要介紹了PHP實(shí)現(xiàn)的DES加密解密類定義與用法,結(jié)合實(shí)例形式分析了基于php定義的DES加密解密類與具體使用方法,需要的朋友可以參考下

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

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

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,請(qǐng)更換成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);//如需轉(zhuǎn)換二進(jìn)制可改成 bin2hex 轉(zhuǎn)換
  return $data;
 }
 /*
  * 解密
  */
 function decrypt($encrypted){
  $encrypted = base64_decode($encrypted); //如需轉(zhuǎn)換二進(jìn)制可改成 bin2hex 轉(zhuǎn)換
  $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 = 'www.fzitv.net';
$des = new CryptDes();
$mres = $des->encrypt($str); //加密
echo $mres."<br/>";
$jres = $des->decrypt($mres); //解密
echo $jres."<br/>";

運(yùn)行結(jié)果:

TxqbmhK86YWdTtTAQoDOqA==
www.fzitv.net

附錄:php7 des加密解密

以下內(nèi)容轉(zhuǎn)自:https://blog.csdn.net/qq_35979073/article/details/81449590

1.在linux 環(huán)境中如果沒有裝encrypt擴(kuò)展 或者php版本大于7.1不支持encrypt加密擴(kuò)展

  可以使用openssl加密擴(kuò)展

下面是封裝的加密和解密的方法可直接調(diào)用

/**
 * des-ecb加密
 * @param string $data 要被加密的數(shù)據(jù)
 * @param string $key 加密密鑰(64位的字符串)
 */
function des_ecb_encrypt($data, $key){
  return openssl_encrypt ($data, 'des-ecb', $key);
}
 
/**
 * des-ecb解密
 * @param string $data 加密數(shù)據(jù)
 * @param string $key 加密密鑰
 */
function des_ecb_decrypt ($data, $key){
  return openssl_decrypt ($data, 'des-ecb', $key);
}

說明: $key 加密密鑰(64位的字符串)  自己定義的

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

在線DES加密/解密工具
http://tools.jb51.net/password/des_encode

MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《php正則表達(dá)式用法總結(jié)

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php中對(duì)象引用和復(fù)制實(shí)例分析

    php中對(duì)象引用和復(fù)制實(shí)例分析

    這篇文章主要介紹了php中對(duì)象引用和復(fù)制,結(jié)合實(shí)例形式分析了php對(duì)象引用和復(fù)制的相關(guān)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • php中實(shí)現(xiàn)進(jìn)程鎖與多進(jìn)程的方法

    php中實(shí)現(xiàn)進(jìn)程鎖與多進(jìn)程的方法

    這篇文章給大家介紹了單進(jìn)程的情況的進(jìn)程鎖實(shí)現(xiàn)、進(jìn)程鎖實(shí)現(xiàn)多進(jìn)程、進(jìn)程鎖在yii2中的實(shí)現(xiàn)以及殺死進(jìn)程的命令,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • php實(shí)現(xiàn)分頁顯示

    php實(shí)現(xiàn)分頁顯示

    這篇文章主要介紹了php實(shí)現(xiàn)分頁顯示的方法,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 探討PHP中OO之靜態(tài)關(guān)鍵字以及類常量的詳解

    探討PHP中OO之靜態(tài)關(guān)鍵字以及類常量的詳解

    本篇文章是對(duì)php中的靜態(tài)關(guān)鍵字以及類常量進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php偽協(xié)議實(shí)現(xiàn)命令執(zhí)行詳情

    php偽協(xié)議實(shí)現(xiàn)命令執(zhí)行詳情

    這篇文章主要介紹了php偽協(xié)議實(shí)現(xiàn)命令執(zhí)行詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,感興趣的朋友可以參考一下
    2022-06-06
  • php中判斷文件存在是用file_exists還是is_file的整理

    php中判斷文件存在是用file_exists還是is_file的整理

    在寫程序時(shí)發(fā)現(xiàn)在判斷文件是否存在時(shí),有兩種寫法,有的人用了is_file,有的人用了file_exists,用哪個(gè)更好或者說更合適呢
    2012-09-09
  • PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁

    PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁

    這篇文章主要為大家詳細(xì)介紹了PHP框架Laravel5.1插件Pagination實(shí)現(xiàn)自定義分頁的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • php更新mysql后獲取改變行數(shù)的方法

    php更新mysql后獲取改變行數(shù)的方法

    這篇文章主要介紹了php更新mysql后獲取改變行數(shù)的方法,分析了獲取更新mysql后改變行數(shù)的方法以及發(fā)生異常的解決方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • PHP實(shí)用小技巧之調(diào)用錄像的方法

    PHP實(shí)用小技巧之調(diào)用錄像的方法

    這篇文章主要給大家介紹了關(guān)于PHP實(shí)用小技巧之調(diào)用錄像的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者實(shí)用PHP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • yii框架源碼分析之創(chuàng)建controller代碼

    yii框架源碼分析之創(chuàng)建controller代碼

    我們可以看到有時(shí)會(huì)使用protected目錄下的controller,有時(shí)會(huì)使用module中controller,具體是如何處理的呢,請(qǐng)看如下的分析
    2011-06-06

最新評(píng)論

阳春市| 保康县| 新平| 若尔盖县| 青海省| 南岸区| 扶绥县| 大埔区| 信阳市| 新竹县| 敖汉旗| 阜南县| 阳江市| 井研县| 廉江市| 公安县| 西平县| 广德县| 赣州市| 临沂市| 乐业县| 樟树市| 双鸭山市| 政和县| 巫溪县| 册亨县| 玉树县| 克东县| 上犹县| 曲松县| 云和县| 怀化市| 基隆市| 精河县| 陇川县| 孟州市| 虹口区| 红河县| 定日县| 磴口县| 新绛县|