求大神把如下Java代码转成php的写法?

//开发者的AccessKey和AccessSecretStringaccessKey="2016100112345678";StringaccessSecret="Pr... // 开发者的Access Key和Access Secret
String accessKey = "2016100112345678";
String accessSecret = "PrN2HybJmXzjgOzjQEPwy9pMDZR55z01";
String apiUrl = "http://dev.zxxk.com/api/getSubjectList";

// 创建参数表
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("accessKey", accessKey);
paramMap.put("stage", 2);
paramMap.put("timestamp", "2016-10-01 13:12:12");

// 对参数名进行字典排序
String[] keyArray = paramMap.keySet().toArray(new String[0]);
Arrays.sort(keyArray);

// 拼接有序的参数名-值串
StringBuilder needEncryptString = new StringBuilder();
for (String key : keyArray){
needEncryptString.append(key).append("=").append(paramMap.get(key)).append("&");
}

// 拼接上开发者Access Secret
needEncryptString.append("accessSecret").append("=").append(accessSecret);

// SHA1计算
String encryptString = org.apache.commons.codec.digest.DigestUtils.sha1Hex(needEncryptStrin g.toString());

// 签名示例,签名结果为:b5fd1917b512cbdb9a666715e7df87192ff23d9a
System.out.println(encryptString);
展开
 我来答
匿名用户
2019-11-14
展开全部
这算法,是java 内置的,php也内置这算法,所以,直接使用——至于结果是否相同,要看算法的结果了

<?php
//需要加密的字符串
$str = "this is string";
//通过sha1进行加密
$res = sha1($str);
//通过指定第二个参数加密
$res = sha1($str,true);
?>
匿名用户
2019-11-13
展开全部
这不就是微信接口签名的计算方式吗,微信官方开发包里有php版本的...
追问
问题这不是微信签名的计算方式,是合作方的接口(不是什么大厂),只有Java版本示例
追答

<?php

$accessKey = "2016100112345678";

$accessSecret = "PrN2HybJmXzjgOzjQEPwy9pMDZR55z01";

$apiUrl = "http://dev.zxxk.com/api/getSubjectList";

$paramMap = [

"accessKey"=>$accessKey,

"stage"=>2,

"timestamp"=>"2016-10-01 13:12:12"

];

ksort($paramMap);

$needEncryptString = "";

foreach($paramMap as $k=>$v){

$needEncryptString=$needEncryptString.$k."=".$v."&";

}

$needEncryptString=$needEncryptString."accessSecret=".$accessSecret;

$sign = sha1($needEncryptString, false);

print($sign)

?>

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式