我有一個問題,由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