各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

PHP中DES加解密的代码示例

管理员 2023-09-05
PHP
122

PHP中DES加解密的代码示例

内容导读

收集整理的这篇技术教程文章主要介绍了PHP中DES加解密的代码示例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2654字,纯文字阅读大概需要4分钟

内容图文

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

test.php测试文件

<?phprequire_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

<?phprequire_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

<?phpclass 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加解密的代码示例的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的PHP中DES加解密的代码示例全部内容,希望文章能够帮你解决PHP中DES加解密的代码示例所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部