Linux PHP5.6安装libsodium
- 爵特猛
- 2022-12-24 15:15
- 其它
- 2647
前言
使用微信“商家转账到零钱”接口,当金额>=2000元时,需要将真实姓名作为参数传过去,微信方要求敏感信息加密,敏感信息加密使用RSA公钥加密算法,加密需要平台证书。调用接口下载平台证书密文,将密文解密后得到证书明文,最后将证书明文保存到项目本地中。
密文解密需要用到 string sodium_crypto_aead_aes256gcm_decrypt ( string $ciphertext , string $ad , string $nonce , string $key ) 这个函数,这个函数需要开启 libsodium 扩展才能使用。
注意:libsodium 扩展版本需要 ≥1.0.7,又因为Windows版本下支持PHP5.6的 ibsodium 扩展版本最高为1.0.6,所以要求Windows中PHP最低版本为7.0以上才可使用 crypto_aead_aes256gcm_decrypt 函数。
Windows 安装
(PHP ≥ 7.2) 直接去 php.ini 开启扩展就行 ,extension=php_sodium.dll 。因为 PHP7.2 版本后 PHP core 中就整合加密库 Libsodium。
(PHP < 7.2.0) 需要安装,libsodium PECL 地址 http://pecl.php.net/package/libsodium 然后下载 DLL 文件。
下载完成后解压:
把
php_sodium.dll
文件放到你的php安装目录下的ext目录下(我这运行的是phpStudy安装的php环境)把 libsodium.dll 文件直接放到PHP安装的根目录
修改配置 php.ini,开启使用扩展
extension=php_sodium.dll
。最后重启PHP,查看 phpinfo 。
Linux 安装方法
1. 下载扩展:
- wget http://pecl.php.net/get/libsodium-1.0.7.tgz
2. 编译安装扩展:
注意:编译前需要修改 php.ini 中的 disable_functions ,将 popen 从禁用函数中去掉。
- pecl install libsodium-1.0.7.tgz
3. 上图扩展下载后,第一次编译时失败,这里系统需要先安装 libsodium 。参考: https://www.cnblogs.com/mrlin/articles/14771626.html
下载 libsodium :
- wget https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz
解压缩 libsodium-1.0.18.tar.gz ,并进入目录:
- tar xf libsodium-1.0.18.tar.gz && cd libsodium-1.0.18
编译安装 libsodium :
- ./configure && make -j2 && make install
安装 libsodium 完成。
4. 返回 libsodium-1.0.7.tgz 所在目录重新执行编译扩展
- pecl install libsodium-1.0.7.tgz
如上图所示,安装 PHP libsodium 扩展成功。
最后重启PHP,查看phpinfo。
以上参考:
https://blog.csdn.net/yyws2039725/article/details/114825751
https://zhuanlan.zhihu.com/p/84899708
https://www.cnblogs.com/mrlin/articles/14771626.html
https://blog.csdn.net/u010324331/article/details/82153067
https://github.com/jedisct1/libsodium-php
资源下载:
https://download.libsodium.org/libsodium/releases/
http://pecl.php.net/package/libsodium
爵特猛