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

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

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

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

thinkphp等框架开发中容易忽略的xss攻击及应对XSS攻击方法

thinkphp等框架开发中容易忽略的xss攻击及应对XSS攻击方法

虽然说现在的web开发框架都是挺成熟的框架,在性能、安全等方面都有比较好的表现,但问题往往出现在业务逻辑上,如上周我再公司发现的一个跨站脚本攻击,(通常公司是这么过滤的,max(0,$_GET[‘a’])、strip_tags($_GET[…

微软版Ghost Win10:FFU映像备份和还原

微软版Ghost Win10:FFU映像备份和还原

在日常的维护中,系统的备份和还原是大家经常需要操作的事情。虽然Windows 10已经提供很多的工具,如系统还原、WIM备份/还原,VHD备份等。不过这些工具大多是基于文件的备份/还原。我们以前经常的使用的Ghost则是基于扇区的备份/还原…

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…

Nginx服务崩溃自动重启脚本(监控进程服务并自动重启进程服务)脚本

有一台服务器运行着Ngin最近突然有一次崩溃,导致使用方当天无法访问网页端,然后我不得不登录服务器,检查各项服务,发现nginx崩溃了,于是重启Nginx,问题解决。后来为了防止Nginx再发生这种情况给运维带来的运维成本,于是写了一个脚本…

在CentOS 5.x 6.x里使用yum源 换阿里云国内源换vault.centos.org源

阿里云CentOS 5 的系统,无法用yum来安装应用软件。  原因:CentOS 5 在2017-03-31日已经结束支持,不再提供维护更新,所以包括阿里云镜像站的文件可能都是过时或已经有部分文件缺失。 &n…

发表评论

访客

看不清,换一张

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