教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP中DES加解密的代码示例

PHP中DES加解密的代码示例

发布时间:2021-01-13   编辑:jiaochengji.com
教程集为您提供PHP中DES加解密的代码示例等资源,欢迎您收藏本站,我们将为您提供最新的PHP中DES加解密的代码示例资源
本篇文章给大家带来的内容是关于PHP中DES加解密的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

test.php测试文件

<?php require_once('Des.php'); $des = new Des(); $data['a'] = 'a'; $data['b'] = 'b'; $conf = ['appkey'=>'AbcdefghijklmnopqrstuvwX','secretcode'=>'Abcdefgh']; $encode = $des->encode($data, $conf); print_r($encode); echo "<br>"; $decode = $des->decode($encode,$conf); print_r($decode); ?>

Des.php

<?php  require_once('TripleDES.php');  class Des {      public static function encode($data, $configKey) {         $tripleDes = new TripleDES();         if (is_array($data)) {             $data = json_encode($data);         }         return $tripleDes->encode($data, $configKey["appkey"], $configKey["secretcode"]);     }      public static function decode($data, $configKey) {         $tripleDes = new TripleDES();         return $tripleDes->decode($data, $configKey["appkey"], $configKey["secretcode"]);     }      public static function encodeArr($data, $configKey) {         $data = json_encode($data);         return self::encode($data, $configKey);     }      public static function decodeArr($data, $configKey) {         $res = self::decode($data, $configKey);         return json_decode($res,true);     }  }

TripleDES.php

<?php  class TripleDES {      public static function genIvParameter() {         return mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC), MCRYPT_RAND);     }      private static function pkcs5Pad($text, $blocksize) {         $pad = $blocksize - (strlen($text) % $blocksize); // in php, strlen returns the bytes of $text         return $text . str_repeat(chr($pad), $pad);     }      private static function pkcs5Unpad($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);     }      public static function encryptText($plain_text, $key, $iv) {         $padded = TripleDES::pkcs5Pad($plain_text, mcrypt_get_block_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC));         return mcrypt_encrypt(MCRYPT_TRIPLEDES, $key, $padded, MCRYPT_MODE_CBC, $iv);     }      public static function decryptText($cipher_text, $key, $iv) {         if(function_exists('mcrypt_decrypt')){             $plain_text = mcrypt_decrypt(MCRYPT_TRIPLEDES, $key, $cipher_text, MCRYPT_MODE_CBC, $iv);         }else{             $plain_text = openssl_decrypt($cipher_text, 'DES-EDE3-CBC',$key, OPENSSL_NO_PADDING,$iv);         }         return TripleDES::pkcs5Unpad($plain_text);     }      public static function decode($cipher_text, $key, $iv) {         $cipher_text = base64_decode($cipher_text);         $cipher_text = TripleDES::decryptText($cipher_text, $key, $iv);         return $cipher_text;     }      public static function encode($cipher_text, $key, $iv) {         $cipher_text = TripleDES::encryptText($cipher_text, $key, $iv);         return base64_encode($cipher_text);     }  }

【推荐课程:PHP视频教程】

以上就是PHP中DES加解密的代码示例的详细内容,更多请关注教程集其它相关文章!

  • 本文转载于:博客园,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    php base64加密解密的实现代码
    php中DES加密与解密的实例代码
    PHP中DES加解密的代码示例
    php中加密解密DES的正确使用姿势
    密码学之对称加密
    PHP DES加解密方法代码
    php DES加密解密的代码一例
    C# 生成注册码的代码一例
    c#实现加密与解密的实例代码
    php加密函数md5,crypt,base64_encode的用法介绍

    [关闭]
    ~ ~