先贴代码:// 拼接有序的参数名-值串
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(appKey);
for (String key : keyArray)
{
stringBuilder.append(key).append(paramMap.get(key));
} stringBuilder.append(secret);
String codes = stringBuilder.toString();
//codes = StringHelper.getUtf8Str(codes);
LD.d("codes--old -->"+codes);
LD.d("sign--old-->"+sha1(codes).toUpperCase());
codes = "4683189130category美食city上海formatjsonhas_coupon1has_deal1keyword泰国菜latitude31.21524limit20longitude121.420033offset_type2radius2000region长宁区sort76644682a44af40d4bb80733069a38272";
LD.d("codes--new -->"+codes);
String sign = sha1(codes).toUpperCase();
LD.d("sign--new-->"+sign);在codes 没有重新赋值之前与赋值后输出值是一样的,但为什么加密后会不一样,试过几种编码转换都不行,下面是输出结果:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(appKey);
for (String key : keyArray)
{
stringBuilder.append(key).append(paramMap.get(key));
} stringBuilder.append(secret);
String codes = stringBuilder.toString();
//codes = StringHelper.getUtf8Str(codes);
LD.d("codes--old -->"+codes);
LD.d("sign--old-->"+sha1(codes).toUpperCase());
codes = "4683189130category美食city上海formatjsonhas_coupon1has_deal1keyword泰国菜latitude31.21524limit20longitude121.420033offset_type2radius2000region长宁区sort76644682a44af40d4bb80733069a38272";
LD.d("codes--new -->"+codes);
String sign = sha1(codes).toUpperCase();
LD.d("sign--new-->"+sign);在codes 没有重新赋值之前与赋值后输出值是一样的,但为什么加密后会不一样,试过几种编码转换都不行,下面是输出结果:
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货