www.adminn.cn
站长正能量分享网!

PHP中DES加解密的代码示例

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

本篇文章给大家带来的内容是关于PHP中DES加解密的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

test.php测试文件

  1. <?php 
  2.  
  3. require_once('Des.php'); 
  4.  
  5. $des = new Des(); 
  6.  
  7. $data['a'] = 'a'
  8.  
  9. $data['b'] = 'b'
  10.  
  11. $conf = ['appkey'=>'AbcdefghijklmnopqrstuvwX','secretcode'=>'Abcdefgh']; 
  12.  
  13. $encode = $des->encode($data$conf); 
  14.  
  15. print_r($encode); 
  16.  
  17. echo "<br>"
  18. //phpfensi.com 
  19. $decode = $des->decode($encode,$conf); 
  20.  
  21. print_r($decode); 
  22.  
  23. ?> 

Des.php

  1. <?php 
  2.  
  3.  
  4.  
  5. require_once('TripleDES.php'); 
  6.  
  7.  
  8.  
  9. class Des { 
  10.  
  11.  
  12.  
  13.     public static function encode($data$configKey) { 
  14.  
  15.         $tripleDes = new TripleDES(); 
  16.  
  17.         if (is_array($data)) { 
  18.  
  19.             $data = json_encode($data); 
  20.  
  21.         } 
  22.  
  23.         return $tripleDes->encode($data$configKey["appkey"], $configKey["secretcode"]); 
  24.  
  25.     } 
  26.  
  27.  
  28.  
  29.     public static function decode($data$configKey) { 
  30.  
  31.         $tripleDes = new TripleDES(); 
  32.  
  33.         return $tripleDes->decode($data$configKey["appkey"], $configKey["secretcode"]); 
  34.  
  35.     } 
  36.  
  37.  
  38.  
  39.     public static function encodeArr($data$configKey) { 
  40.  
  41.         $data = json_encode($data); 
  42.  
  43.         return self::encode($data$configKey); 
  44.  
  45.     } 
  46.  
  47.  
  48.  
  49.     public static function decodeArr($data$configKey) { 
  50.  
  51.         $res = self::decode($data$configKey); 
  52.  
  53.         return json_decode($res,true); 
  54.  
  55.     } 
  56.  
  57.  
  58.  

TripleDES.php

  1. <?php 
  2.  
  3.  
  4.  
  5. class TripleDES { 
  6.  
  7.  
  8.  
  9.     public static function genIvParameter() { 
  10.  
  11.         return mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC), MCRYPT_RAND); 
  12.  
  13.     } 
  14.  
  15.  
  16.  
  17.     private static function pkcs5Pad($text$blocksize) { 
  18.  
  19.         $pad = $blocksize – (strlen($text) % $blocksize); // in php, strlen returns the bytes of $text 
  20.  
  21.         return $text . str_repeat(chr($pad), $pad); 
  22.  
  23.     } 
  24.  
  25.  
  26.  
  27.     private static function pkcs5Unpad($text) { 
  28.  
  29.         $pad = ord($text{strlen($text) – 1}); 
  30.  
  31.         if ($pad > strlen($text)) 
  32.  
  33.             return false; 
  34.  
  35.         if (strspn($textchr($pad), strlen($text) – $pad) != $pad
  36.  
  37.             return false; 
  38.  
  39.         return substr($text, 0, -1 * $pad); 
  40.  
  41.     } 
  42.  
  43.  
  44.  
  45.     public static function encryptText($plain_text$key$iv) { 
  46.  
  47.         $padded = TripleDES::pkcs5Pad($plain_text, mcrypt_get_block_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC)); 
  48.  
  49.         return mcrypt_encrypt(MCRYPT_TRIPLEDES, $key$padded, MCRYPT_MODE_CBC, $iv); 
  50.  
  51.     } 
  52.  
  53.  
  54.  
  55.     public static function decryptText($cipher_text$key$iv) { 
  56.  
  57.         if(function_exists('mcrypt_decrypt')){ 
  58.  
  59.             $plain_text = mcrypt_decrypt(MCRYPT_TRIPLEDES, $key$cipher_text, MCRYPT_MODE_CBC, $iv); 
  60.  
  61.         }else
  62.  
  63.             $plain_text = openssl_decrypt($cipher_text'DES-EDE3-CBC',$key, OPENSSL_NO_PADDING,$iv); 
  64.  
  65.         } 
  66.  
  67.         return TripleDES::pkcs5Unpad($plain_text); 
  68.  
  69.     } 
  70.  
  71.  
  72.  
  73.     public static function decode($cipher_text$key$iv) { 
  74.  
  75.         $cipher_text = base64_decode($cipher_text); 
  76.  
  77.         $cipher_text = TripleDES::decryptText($cipher_text$key$iv); 
  78.  
  79.         return $cipher_text
  80.  
  81.     } 
  82.  
  83.  
  84. //phpfensi.com 
  85.     public static function encode($cipher_text$key$iv) { 
  86.  
  87.         $cipher_text = TripleDES::encryptText($cipher_text$key$iv); 
  88.  
  89.         return base64_encode($cipher_text); 
  90.  
  91.     } 
  92.  
  93.  
  94.  

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP中DES加解密的代码示例》
文章链接:https://www.adminn.cn/news/7732.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏