openssl 签名问题

烦恼的大胖 发布于 2012/03/05 23:00
阅读 750
收藏 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;
} 
望指教~~!!万分感谢!!!
加载中
0
烦恼的大胖
烦恼的大胖
有高手可以指导一下吗
返回顶部
顶部