当前位置:首页 > 技术分享

​CentOS 安装libsodium 支持 crypto_aead_aes256gcm_decrypt 兼容php5.6,php7.2

admin5年前 (2021-12-18)技术分享4736

微信小微商户下载证书返回的密文用 AEAD_AES_256_GCM 算法 解密的方法。其中用到了 string sodium_crypto_aead_aes256gcm_decrypt ( string $ciphertext , string $ad , string $nonce , string $key ) 这个函数。但是这个函数可能你们调用的时候会报错,那是因为使用这个函数需要开启 libsodium 扩展才能使用。


(PHP ≥ 7.2) 直接去 php.ini 开启扩展就行 ,extension=php_sodium.dll 。因为 PHP7.2 版本后 PHP core 中就整合加密库 Libsodium
(PHP < 7.2.0) 需要安装,libsodium

CentOS:安装libsodium


参考:https://zhuanlan.zhihu.com/p/84899708


在http://pecl.php.net/package/libsodium和https://github.com/jedisct1/libsodium-php看了下,


只合适用1.*的版本


wget http://pecl.php.net/get/libsodium-1.0.7.tgz
pecl install libsodium-1.0.7.tgz

 

安装好之后提示:

Build process completed successfully
Installing '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/libsodium.so'
install ok: channel://pecl.php.net/libsodium-1.0.7
configuration option "php_ini" is not set to php.ini location
You should add "extension=libsodium.so" to php.ini

  

vi /usr/local/php/etc/php.ini

添加上

extension=libsodium.so

即可

 

测试代码

<?php
$str='17pV1s3a8bIHpOJrIOtTAuRSEToHhFDU1KFARw==';
$ad = 'fullstackpm'; // 加密证书的随机串
$nonce = '4k3HqbrXwtpg';
$kengen = 'D2Ffwerq2c3242aa2F3RF52B315dff11';
// 解密
$pem=base64_decode($str);
if(version_compare(PHP_VERSION,'7.2.0','<')){
    $v = \Sodium\crypto_aead_aes256gcm_decrypt($pem, $ad, $nonce, $kengen);
}else{
    $v = sodium_crypto_aead_aes256gcm_decrypt($pem, $ad, $nonce, $kengen);
}
var_dump($v);
?>


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/221.html

分享给朋友:

“​CentOS 安装libsodium 支持 crypto_aead_aes256gcm_decrypt 兼容php5.6,php7.2” 的相关文章

centos 配置Let's Encrypt 泛域名https证书

centos 配置Let's Encrypt 泛域名https证书

前言2018年1月份Letsencrypt可以申请泛域名证书,这让我们部署多域名、多站点https省了很多功夫,终于可以不用维护多个域名的https证书。笔者以acme.sh为例,手把手教你配置https证书~本教程适用于centos 6.…

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

下面的密钥,是微软官方提供的,仅能用于Windows10系统版本的升级,比如从家庭版升级为专业版、专业版升级为企业版等。升级密钥不能用于激活系统,激活需要KMS或者数字权利,由于涉及到版权问题,在此不宜分享,请大家自行查找激活相关的内容。准…

安卓模拟器连接端口 及常用命令

下面是我总结和测试通过的:有的是搜集来的模拟器名称                     &nbs…

Chrome 最全历史版本下载以及chromedriver下载

https://vikyd.github.io/download-chromium-history-version/#/ https://dl.lancdn.com/landian/soft/chrome/m/ chromedriver的版…

阿里云盘 分享脚本 抢先实现文件分享功能

Win端基本所有浏览器均可进行安装安装地址:https://bbs.tampermonkey.net.cn/thread-427-1-1.html如何安装:Tampermoneky安装:谷歌浏览器参考:https://bbs.tamperm…

Linux/centos inode 占用100%的解决办法

当你的 Linux 系统无法创建新文件时,有可能是你的磁盘满了,还有可能是你的磁盘的 inode 用光了,我们今天要说的就是后一种情况,要解决这个问题,只能是删除一些文件,但是一般情况下,其实是你的系统中的某个地方产生了大量的你并不需要的文…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。