PHP7中如何使用DES-EDE-CBC加密解密方法具体操作步骤是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计597个文字,预计阅读时间需要3分钟。
本篇文章简要介绍PHP7中使用DES-EDE-CBC加密解密的方法。有一定参考价值,相关朋友可参考以下内容,希望能对大家有所帮助。
1. 条件限制:PHP7.1及以上版本,且之前使用的mcrypt库已被弃用。
在PHP7中,我们可以使用openssl库来实现DES-EDE-CBC加密解密。以下是一个示例代码:
php
// 解密$decrypted=openssl_decrypt(base64_decode($encrypted), 'DES-EDE-CBC', $key, OPENSSL_RAW_DATA, $iv);echo $decrypted;?>
以上代码展示了如何使用openssl_encrypt和openssl_decrypt函数进行加密和解密操作。其中,$key和$iv分别代表密钥和初始化向量,这两个参数在加密和解密过程中需要保持一致。
需要注意的是,openssl_encrypt和openssl_decrypt函数在PHP7.1及以上版本中已经废弃了mcrypt库,因此在使用过程中无需再依赖mcrypt库。
希望以上内容能对大家有所帮助。如有疑问,欢迎提出。
本篇文章给大家介绍一下PHP7中使用“DES-EDE-CBC”加解密的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
1. 条件约束之前PHP5上常使用的mcrypt库在PHP7.1+上已经被移除,故我们采用openssl对数据进行加解密。
加密方式采用DES-EDE-CBC方式。
密钥填充方式为:采用24位密钥,先将key进行MD5校验取值,得出16位字串,再取key MD5校验值前8位追加到先前的取值后面。由此组装出24位的密钥。
2. 代码分享<?php class DesEdeCbc { private $cipher, $key, $iv; /** * DesEdeCbc constructor. * @param $cipher * @param $key * @param $iv */ public function __construct($cipher, $key, $iv) { $this->cipher = $cipher; $this->key= $this->getFormatKey($key); $this->iv = $iv; } /** * @func 加密 * @param $msg * @return string */ public function encrypt($msg) { $des = @openssl_encrypt($msg, $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv); return base64_encode($des); } /** * @func 解密 * @param $msg * @return string */ public function decrypt($msg) { return @openssl_decrypt(base64_decode($msg), $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv); } /** * @func 生成24位长度的key * @param $skey * @return bool|string */ private function getFormatKey($skey) { $md5Value= md5($skey); $md5ValueLen = strlen($md5Value); $key = $md5Value . substr($md5Value, 0, $md5ValueLen / 2); return hex2bin($key); } } $cipher = 'DES-EDE-CBC'; $msg = 'HelloWorld'; $key = '12345678'; $iv = "\x00\x00\x00\x00\x00\x00\x00\x00"; $des = new DesEdeCbc($cipher, $key, $iv); // 加密 $msg = $des->encrypt($msg); echo '加密后: ' . $msg . PHP_EOL; // 解密 $src = $des->decrypt($msg); echo '解密后: ' . $src . PHP_EOL;3. 一点说明
可以根据实际情况调整加密方式、key的填充方式、及iv向量来满足不同的需求。
推荐学习:php视频教程
本文共计597个文字,预计阅读时间需要3分钟。
本篇文章简要介绍PHP7中使用DES-EDE-CBC加密解密的方法。有一定参考价值,相关朋友可参考以下内容,希望能对大家有所帮助。
1. 条件限制:PHP7.1及以上版本,且之前使用的mcrypt库已被弃用。
在PHP7中,我们可以使用openssl库来实现DES-EDE-CBC加密解密。以下是一个示例代码:
php
// 解密$decrypted=openssl_decrypt(base64_decode($encrypted), 'DES-EDE-CBC', $key, OPENSSL_RAW_DATA, $iv);echo $decrypted;?>
以上代码展示了如何使用openssl_encrypt和openssl_decrypt函数进行加密和解密操作。其中,$key和$iv分别代表密钥和初始化向量,这两个参数在加密和解密过程中需要保持一致。
需要注意的是,openssl_encrypt和openssl_decrypt函数在PHP7.1及以上版本中已经废弃了mcrypt库,因此在使用过程中无需再依赖mcrypt库。
希望以上内容能对大家有所帮助。如有疑问,欢迎提出。
本篇文章给大家介绍一下PHP7中使用“DES-EDE-CBC”加解密的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
1. 条件约束之前PHP5上常使用的mcrypt库在PHP7.1+上已经被移除,故我们采用openssl对数据进行加解密。
加密方式采用DES-EDE-CBC方式。
密钥填充方式为:采用24位密钥,先将key进行MD5校验取值,得出16位字串,再取key MD5校验值前8位追加到先前的取值后面。由此组装出24位的密钥。
2. 代码分享<?php class DesEdeCbc { private $cipher, $key, $iv; /** * DesEdeCbc constructor. * @param $cipher * @param $key * @param $iv */ public function __construct($cipher, $key, $iv) { $this->cipher = $cipher; $this->key= $this->getFormatKey($key); $this->iv = $iv; } /** * @func 加密 * @param $msg * @return string */ public function encrypt($msg) { $des = @openssl_encrypt($msg, $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv); return base64_encode($des); } /** * @func 解密 * @param $msg * @return string */ public function decrypt($msg) { return @openssl_decrypt(base64_decode($msg), $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv); } /** * @func 生成24位长度的key * @param $skey * @return bool|string */ private function getFormatKey($skey) { $md5Value= md5($skey); $md5ValueLen = strlen($md5Value); $key = $md5Value . substr($md5Value, 0, $md5ValueLen / 2); return hex2bin($key); } } $cipher = 'DES-EDE-CBC'; $msg = 'HelloWorld'; $key = '12345678'; $iv = "\x00\x00\x00\x00\x00\x00\x00\x00"; $des = new DesEdeCbc($cipher, $key, $iv); // 加密 $msg = $des->encrypt($msg); echo '加密后: ' . $msg . PHP_EOL; // 解密 $src = $des->decrypt($msg); echo '解密后: ' . $src . PHP_EOL;3. 一点说明
可以根据实际情况调整加密方式、key的填充方式、及iv向量来满足不同的需求。
推荐学习:php视频教程

