我有一个问题,由android studio生成给定字符串的正确哈希。我已经阅读了很多解决方案,但没有理解如何正确转换它。 我需要正确的散列,因为我使用它发出HTTP请求。在android中的sha256哈希计算错误
这是我在Java代码:
public String getHash(final String appSecret , final String sessionToken)throws NoSuchAlgorithmException ,UnsupportedEncodingException{
String input = sessionToken + appSecret;
MessageDigest digest = MessageDigest.getInstance("SHA-256");
digest.reset();
byte[] byteData = digest.digest(input.getBytes("UTF-8"));
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++){
sb.append(String.format("%02x", 0xFF & byteData[i]));
}
return sb.toString();
}
对于像输入:
1130_11825_253402300799_1_1bcb4a27d42524de11325ec627b63878770a8651c0a0d8ddfc8fc06b92aea281634ff11f7d874c03851932304601439e
我需要确切的输出:
01a9d698f0587a25ad8ef56b0994ec0022364aff91d668a4b3a4b97c40167672
,但我得到一个错误的输出:
a60f61b5e9f832b153a91e8d2b1ffa28b9611b2d60c3669663cfe050ac8e28cc
我想我的问题是如何读取/打印字符串,但我无法弄清楚如何纠正它。 我知道一个在线哈希计算器返回一个正确的哈希。 谢谢。
谢谢,这是非常有益的。如果您想使用此代码,请注意您发送的字符串。确保它没有空白或没有新的线条。 – Nimo 2014-11-15 08:53:56