openssl 签名问题
小弟日前在做一个充值的接口,但接口文档中只有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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有高手可以指导一下吗