Я пытаюсь генерировать хэш SHA256 в Android, который затем перехожу в веб -сервис ASP.NET Web API и сравниваю там хэш. Таким образом, мне нужно построить хэш в Android, что, учитывая те же входы в ASP.NET, генерируя эквивалентный хэш. Я вытаскиваю свои волосы, пытаясь выяснить, что я делаю не так. < /P>
Вот код Android: < /p>
public String computeHash(String input) throws NoSuchAlgorithmException{
MessageDigest digest = MessageDigest.getInstance("SHA-256");
digest.reset();
try{
digest.update(input.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e){
e.printStackTrace();
}
byte[] byteData = digest.digest(input.getBytes());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++){
sb.append(Integer.toString((byteData & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
}
< /code>
Вот код C# для сервера: < /p>
private static string ComputeHash(string input, HashAlgorithm algorithm)
{
Byte[] inputBytes = Encoding.UTF8.GetBytes(input);
Byte[] hashedBytes = algorithm.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashedBytes.Length; i++)
{
sb.Append(String.Format("{0:x2}", hashedBytes));
}
return sb.ToString();
}
Подробнее здесь: https://stackoverflow.com/questions/966 ... nd-c-sharp