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

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

admin4年前 (2021-12-18)技术分享4189

微信小微商户下载证书返回的密文用 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” 的相关文章

apicloud开发调试方法 nodejs [超低,超省内存占用] 兼容最新用友 you-cli

apicloud 开发 + 模拟器 +浏览器 +其它这些一开相当占用内存,让电脑不堪重负.于是我想到用命令行来实现调试这样可以不开启apicloud软件进行调试了 命令行+ 模拟器 就可以调试了准备1.检出项目.可以用svn检出,也可以直接…

WPS表格办公—取消科学计数法显示

WPS表格办公—取消科学计数法显示

我们在利用WPS表格与Excel表格进行日常办公时,经常需要制作各种各样的表格,当我们在表格当中输入长数据的时候,表格经常会自动显示为科学计数法,很多人都看不懂科学计数法的意思,那么,我们如何在输入长数字的时候避免显示为科学计数法呢,今天我…

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

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

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

2021可用的百度网盘高速下载方法分享

2021可用的百度网盘高速下载方法分享

最新可用方法https://blog.bitefu.net/post/163.html方法很简单就是利用网盘直链下载助手【网盘直链下载助手】是一款免费开源获取网盘文件真实下载地址的油猴脚本,基于PCSAPI,支持Windows,Mac,Li…

VirtualXposed 不支持32位应用 32位无法安装问题解决办法

VirtualXposed 不支持32位应用 32位无法安装问题解决办法

VirtualXposed 是基于VirtualApp 和 epic 在非ROOT环境下运行Xposed模块的实现(支持5.0~10.0)。与 Xposed 相比,目前 VirtualXposed 有…

PHP AES加解密 (ECB模式/sha1prng算法/PKCS5Padding和PKCS7Padding补码) ECB 模式不需求设置 iv

php7+ 版本/**  * [AesSecurity aes加密,支持PHP7+]  * 算法模式:ECB  * 密钥长度:128  * 补…

发表评论

访客

看不清,换一张

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