PHP对接Java接口时, 对方用的hmsc_sha1加密,PHP方面如何配合。
假设需要加密的数据:
$data_arr = array(
'cid' =>1222222222, //客户号
'user' => uuuuuuu, //用户名
'pwd' => xxxxxxxxxxx, //用户密码
);
首先需要咨询对方Java那边, 需要将数据拼接成什么样的格式, 一定有的, 每家都不一样的。
如, cid=1222222user=uuuuuuupwd=xxxxxxx, 可以根本不是我们常见的什么查询串,json串。可能会任意组合, 如果你不问清, 就是白忙活。
假设你问到的他们是这样的cid-122222222user=uuuuuuupwd-xxxxxxxxx, 那你就通过掌握的PHP技术,循环遍历下, 拼接上面的样子, 然后扔到PHP加密函数hash_hmac里即可。
$mistr = hash_hmac('sha1',你拼出来的字符串,你的私密匙,true);
有时会要求转码, 要求变成大写什么, 这个都属于算法一部分, 需要咨询对方
$mistr = hash_hmac('sha1',你拼出来的字符串,你的私密匙,true);
$data_sign = strtoupper(bin2hex($mistr)); //这两函数的使用 也是对方加密算法的一部分,需要咨询对方 各家不一样的
// $data_sign 这个就是一个加了密的串。 也就是签名串
然后将签名串 添加到数据数组里 通过post传给对方即可
如
$data_arr = array(
'cid' =>1222222222, //客户号
'user' => uuuuuuu, //用户名
'pwd' => xxxxxxxxxxx, //用户密码
);
//...... 这里省略一些代码
//将得到的签名串,添加到需要发动的数据里
$data_arr['sign']=$data_sign //向$data_arr数组里 添加一对 key-value数据
依然不懂 可以留言 咨询。