PHP7 OpenSSL DES-EDE-CBC加解密的示例分析

1、条件约束

之前PHP5上常使用的mcrypt库在PHP7.1+上已经被移除,故我们采用openssl对数据进行加解密。

加密方式采用DES-EDE-CBC方式。

密钥填充方式为:采用24位密钥,先将key进行MD5校验取值,得出16位字串,再取key MD5校验值前8位追加到先前的取值后面。由此组装出24位的密钥。

2、代码分享

<?phpclass 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向量来满足不同的需求。

原创文章,作者:WROEL,如若转载,请注明出处:http://www.wangzhanshi.com/n/16352.html

(0)
WROEL的头像WROEL
上一篇 2025年1月2日 12:39:10
下一篇 2025年1月2日 12:39:12

相关推荐

  • 美国服务器openssl证书不可信的原因有哪些

    1、证书是否过期 在美国服务器上最多只能申请2年SSL证书,如果超过了有效期还需要去重新申请SSL证书,如果网站上有不信任的SSL证书,首先要考虑SSL证书是否过期。如果是新购买的…

    ssl证书 2025年1月2日
  • 通配符ssl证书是怎样的安装

    我们要创建一个网站以前只要下载一个ssl证书就可以了,但是这个证书它对网站的一些数据保密性不是特别的好。那么现在通配符ssl证书安装的出现就解决了数字保密的这个问题, 但是安装这个…

    2025年1月2日
  • 国内SSL证书的相关介绍

    SSL证书是保护互联网消费者数据信息的一个保障,其中包括公用密钥和私人密钥。SSL证书不仅能够对输入的数据进行检查,还可以对输出的数据进行保护,这样在一定程度上既保护了客户端,又保…

    2025年1月2日
  • 如何选择靠谱的网站安全证书

    今天小编给大家分享的是如何选择靠谱的网站安全证书,相信很多人都不太了解,为了让大家更加了解网站安全证书,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。 截至去年底,我…

    2025年1月2日
  • 服务器ssl检测工具的作用有哪些

    网站的信息安全是很重要的,如果想要增加网站的浏览量,就一定要保障网站的信息安全,这样才可以吸引更多的用户。所以,很多企业开始给网站配置ssl证书。虽然,配置了这种安全证书之后,网站…

    2025年1月2日
  • 关于iis免费ssl证书的简介

    互联网信息服务全称为Internet Information Services,简称iis,使用iis浏览器可以做到浏览及时新闻、收发email、处理文件、信息传递等功能,对于用户…

    2025年1月2日
  • 便宜的ssl证书好不好

    现在越来越多的网站开始配置SSL证书了,毕竟SSL证书能够提升网站的安全,SSL证书能够防止网站被钓鱼网站假冒,也能够防止网站的数据被篡改,也能够避免网站出现不必要的损失,所以给网…

    2025年1月2日
  • 几级域名才能申请ssl证书?

    几级域名才能申请ssl证书?很多人都不太了解,今天小编为了让大家更加了解ssl证书申请的条件,所以给大家总结了以下内容,一起往下看吧。 ssl证书可绑定一级或二级域名。 主流SSL…

    2025年1月2日
  • php怎样安装openssl扩展

    php安装openssl扩展的方法:首先在PHP安装包中找到curl扩展目录;然后将config0.m4文件重命名;接着运行phpize;最后编译安装,并设置PHP配置文件php.…

    ssl证书 2025年1月2日
  • ssl证书的价格是多少,使用什么方法购买比较好?

    ssl证书的价格是多少,使用什么方法购买比较好?很多人都不太了解,今天小编为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。 如果想要网站的信息安全更加高,很多企业都会给…

    2025年1月2日

发表回复

登录后才能评论