js代码转换为java

求大神指教,下面这段js怎么用java写出来... 求大神指教,下面这段js怎么用java写出来 展开
 我来答
匿名用户
2017-05-12
展开全部

理解他的原理就好写了。

所有参数 排除 时间戳,按照字母顺序排序,然后连接起来 和 appKey 以及 appSercet 进行md5 运算。

排序可以使用 String []keys = map.keyset().toarray() 获取后使用 Collections 进行sort。


有个类似的,可以参考一下:

public static boolean signVerify(String appSecret,Map<String, String> params){
Map<String, String> map=new HashMap<String, String>();
map.put("appSecret", appSecret);

for(String key:params.keySet()){
if(!key.equals("sign")){
map.put(key, params.get(key));
}
}

String sign=sign(map);
if(sign.equals(params.get("sign"))){
return true;
}
return false;
}

private static String toHexValue(byte[] messageDigest) {
if (messageDigest == null)
return "";
StringBuilder hexValue = new StringBuilder();
for (byte aMessageDigest : messageDigest) {
int val = 0xFF & aMessageDigest;
if (val < 16) {
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
/**
 * 
 * @param params
 * @return
 */
public static String sign(Map<String,String> params){
List<String> keys=new ArrayList<String>(params.keySet());
Collections.sort(keys);
String string="";
for(String s:keys){
string+=params.get(s);
}
String sign="";
try {
sign = toHexValue(encryptMD5(string.getBytes(Charset.forName("utf-8"))));
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("md5 error");
}
return sign;
}

private static byte[] encryptMD5(byte[] data)throws Exception{
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(data);
return md5.digest();
}

public static void main(String[] args) {
String appKey="key";
String appSecret="secret";

Map<String, String> params=new HashMap<String, String>();
params.put("appKey", appKey);
params.put("appSecret", appSecret);
params.put("date", new Date().getTime()+"");

String sign=sign(params);

params.put("sign", sign);

System.out.println(signVerify(appSecret, params));

}
107673298922a0
2017-05-12 · TA获得超过128个赞
知道答主
回答量:141
采纳率:0%
帮助的人:54万
展开全部

js转Java......

$.ajax({
url : "action",
dataType : "JSON",
async : true,
data:{Url,getUrl()},
type : 'post',
success : function(data) {
}

这样行不行,这么张图片全变成Java太不好写了

追问
想全部转化为java的一个类,可以直接调用getUrl()这个方法。自己写了一点,不过关于js这个数组存键值对和js这个排序不知道怎么办。。。。求大神指教。。。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式