一段java代码转php代码,求高手 10
这是一段实现签名的函数,用java实现的,目前想用php实现,由于java很少接触,所以过来求教高手!publicstaticStringsign(Stringacces...
这是一段实现签名的函数,用java实现的,目前想用php实现,由于java很少接触,所以过来求教高手!
public static String sign(String accessSecret, String stringToSign) throws Exception {
javax.crypto.Mac mac = javax.crypto.Mac.getInstance("HmacSHA1");
mac.init(new javax.crypto.spec.SecretKeySpec(accessSecret.getBytes("UTF-8"), "HmacSHA1"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
return new sun.misc.BASE64Encoder().encode(signData);
}
这是我写的php代码,
$signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessSecret, true));
好像是缺少了utf8的编码转化?两者的签名结果完全不同!跪求高手指点!急!! 展开
public static String sign(String accessSecret, String stringToSign) throws Exception {
javax.crypto.Mac mac = javax.crypto.Mac.getInstance("HmacSHA1");
mac.init(new javax.crypto.spec.SecretKeySpec(accessSecret.getBytes("UTF-8"), "HmacSHA1"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
return new sun.misc.BASE64Encoder().encode(signData);
}
这是我写的php代码,
$signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessSecret, true));
好像是缺少了utf8的编码转化?两者的签名结果完全不同!跪求高手指点!急!! 展开
展开全部
utf8编码试试:utf8_encode()
即:
utf8_encode($stringToSign)
追问
这个试过了,不行
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的参数写反了,hash_hmac('sha1', $stringToSign, $accessSecret, true)
改
hash_hmac('sha1', $accessSecret, $stringToSign, true)
即可
改
hash_hmac('sha1', $accessSecret, $stringToSign, true)
即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
防火防盗好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-08-27
展开全部
HmacSHA1
直接找php版本的算法
~~~~~~~~~~~~~~~~~~~~~~
直接找php版本的算法
~~~~~~~~~~~~~~~~~~~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询