首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole中运行openssl_private_decrypt函数数据解密失败
### 问题描述 在swoole中运行openssl_private_decrypt函数进行数据解密,发现解密方法大部分是失败的,有时候可以成功运行,不过大部分都是返回false.用传统的fpm进行请求可以解密出数据,可是同一串字符串,在swoole中就解密失败了. ### Swoole版本,PHP版本,以及操作系统版本信息 用的宝塔环境,PHP7.3 swoole4.0 ### 相关代码 ```php $crypttext = 'fSlv1JLdBi0cEAdkK7R7ss9JtXa5d5hfo%2Bp6tGl2TF2goflcg5frstxNyqNBZ%2BuPjo6FobZW7a63TfSDtC/KNNaaDaCEYXnSDcN6RPNsRUtAodxRt6XLrIxQgvdbWllttllXxzqj6db7xKQyKnlT9RHMlXzqM9lC/TzIwTBSMhI='; $key_content = file_get_contents($this->app->getRootPath().'private.key'); $prikeyid = openssl_get_privatekey($key_content); $crypttext = base64_decode($crypttext); if (openssl_private_decrypt($crypttext, $sourcestr, $prikeyid, OPENSSL_PKCS1_PADDING)){ return $sourcestr; } return false; ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 用fpm请求返回正确的字符串,在swoole中运行返回false
发布于4年前 · 20 次浏览 · 来自
提问
wsas845
### 问题描述 在swoole中运行openssl_private_decrypt函数进行数据解密,发现解密方法大部分是失败的,有时候可以成功运行,不过大部分都是返回false.用传统的fpm进行请求可以解密出数据,可是同一串字符串,在swoole中就解密失败了. ### Swoole版本,PHP版本,以及操作系统版本信息 用的宝塔环境,PHP7.3 swoole4.0 ### 相关代码 ```php $crypttext = 'fSlv1JLdBi0cEAdkK7R7ss9JtXa5d5hfo%2Bp6tGl2TF2goflcg5frstxNyqNBZ%2BuPjo6FobZW7a63TfSDtC/KNNaaDaCEYXnSDcN6RPNsRUtAodxRt6XLrIxQgvdbWllttllXxzqj6db7xKQyKnlT9RHMlXzqM9lC/TzIwTBSMhI='; $key_content = file_get_contents($this->app->getRootPath().'private.key'); $prikeyid = openssl_get_privatekey($key_content); $crypttext = base64_decode($crypttext); if (openssl_private_decrypt($crypttext, $sourcestr, $prikeyid, OPENSSL_PKCS1_PADDING)){ return $sourcestr; } return false; ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 用fpm请求返回正确的字符串,在swoole中运行返回false
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2021-12-10
鲁飞
key_content 的内容是否获取到了?
赞
0
回复
2021-12-10
wsas845
回复
鲁飞
可以获取到私钥的,就是同一串代码,在传统FPM 下面运行是有解密数据的,可是在swoole中运行就有时候可以解密,大部分都是返回false
赞
0
回复
2021-12-10
_+
openssl_get_privatekey 看下内存是否泄漏了,我的反正是漏的
赞
0
回复