PHP 项目使用 libsodium 扩展

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010324331/article/details/82153067

前面说了微信小微商户下载证书返回的密文用 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 PECL 地址 http://pecl.php.net/package/libsodium

官方文档上面对该扩展的说明如下:

As of PHP 7.2.0 this extension is bundled with PHP. For older PHP versions this extension is available via PECL.
libsodium需求
libsodium安装说明


对于PHP 7以下版本windows上我测试了php 5.6,没有找到 libsodium ≥ 1.0.8 的版本,1.0.6 version 能安装但是不能使用 sodium_crypto_aead_aes256gcm_decrypt 函数。当然 PHP 版本低于 7 的同学们也不用绝望,看下面。

Sodium Compat PHP 类库

Sodium Compat 是用于 Sodium 加密库(libsodium)的纯 PHP 填充,它是 PHP 7.2.0+ 的核心扩展,也可用于 PECL。
这个库 tentativeley 支持PHP 5.2.4 - 7.x(最新版),但官方只支持非 EOL 版本的 PHP。
如果安装了 PHP 扩展,Sodium Compat 将机会性地透明地使用 PHP 扩展而不是我们的实现。
github 地址: https://github.com/paragonie/sodium_compat
(ps:因为我使用的是 PHP 7.2 版本,所以对使用这个库并没有测试过,如果你测试通过,可以在评论说下是否可用,帮助其他人少踩点坑)

新增

1、看到一篇关于 libsodium 扩展的文章,推荐还不知道安装的去看一下点击查看《在PHP项目中使用Libsodium》

猜你喜欢

转载自blog.csdn.net/u010324331/article/details/82153067
今日推荐