介绍一下问题的背景:本人一枚小小PHPer,有一天公司的Java找到我,让我帮忙写一个接口的Demo,心想:‘最喜欢写接口了,来来来来!’,于是Java就带着Java版Demo来了,大概看了一遍,具体涉及以下几点:md5加密:java中定义hashMap,储存userid,再使用toJSONString将其转换成Json串,再将Json使用md5Hex加密,再放入hashMap中map参数格式转换:将map中的数据转换成String,对key,value进行数据拼接,拼接成字符串,此字符串具体要求如下:‘按照参数名ASCII码从小到大排序,使用URL键值对的格式(即key1=value1&key2=value2…)构造成字符串signPlainText’hash_hmac签名验证:这个没什么说的,PHP中有hash_hmac函数谈论一下遇到的坑:本PHPer比较渣渣,不知道Java中的hashMap是用来做啥的,但我知道,它最后做了一件事:JSONObject.toJSONString(body),没错,转换成字符串了,所以有了以下代码:(不负责的贴图,不知道正确与否)Java版 Map<String, String> body = new HashMap<>(); body.put(“userId”, userId); //post请求body为json格式,将json格式进行md5加密 String postBody = JSONObject.toJSONString(body); String bodyMd = DigestUtils.md5Hex(postBody);PHP版 $body = [“userId”=>$userId]; $postbody = json_encode($body); $bodyMd = md5($postbody);上边我们之间应该是在做一件事请吧?应该是的,反正都是转成了Json,转成了Md5