openssl 签名问题

发布于 2021-11-14 00:59:27 字数 904 浏览 836 评论 1

小弟日前在做一个充值的接口,但接口文档中只有PYTHON的示例,这边需要用PHP来实现,但始终是签名错误,不知道其中的算法是否写的有误

PYTHON的示例:

5.3.1. 签名

(1) 得到

site_id+user_id+order_id+order_time+bn_ac+game+game_ac+reason+pts 假

设该值为plain

(2) 使用SHA1 算法对plain 生成报文摘要, 如, digest =

hashlib.sha1(plain).digest()

(3) 加载私钥文件, 使用RSA 算法, 对报文摘要加密, 如,pri_key =

RSA.load(key_file) , signature = pri_key.sign(digest)

(4) 为了使签名后的数据,能方便得在互联网上传输,需要将signature 值进

行hex(十六进制)化,如,hex_val = binascii.hexlify(signature)

(5) 最后将hex_val 值放入sign 字段作为签名数据

(6) 按照以上步骤产生的签名数据,一定是256 字节长

我的PHP方法:

function toSign($str)
{
$priKeyContent = file_get_contents(私钥文件地址);
$priKey = openssl_get_privatekey($priKeyContent);
openssl_sign($str,$res,$priKey, OPENSSL_ALGO_SHA1);
$res = bin2hex($res);
return $res;
} 

望指教~~!!万分感谢!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妖妓 2021-11-15 11:23:35

有高手可以指导一下吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文