2016-10-05 6 views
0

У меня вопрос о том, как java печатает HexString и как печатать его в том же формате, что и C# с помощью BitConverter.Формат sha-1 hash like .net делает

Мы (оба) генерируют этот Hex как результат хэширования строки с SHA-1:

a94a8fe5ccb19ba61c4c873d391e987982fbbd3 (хэш для «тест» строка)

Проблема заключается в том, когда мы тестируем хэширования в C# , C# печатает в верхнем регистре и разделяется «-», например A9-4A-8F .. и так далее.

Как распечатать один и тот же формат с помощью java?

Код для хеширования и печати заключается в следующем:

String password = "test"; 

     byte[] key = password.getBytes(); 

     MessageDigest md = MessageDigest.getInstance("SHA-1",new BouncyCastleProvider()); 

     byte[] hash = md.digest(key); 

     String result = ""; 
     for (byte b : hash) { 
      result += Integer.toHexString(b & 255); 
     } 
     return result; 

ответ

0
String result = ""; 
for (byte b : hash) { 
    result += Integer.toHexString(b & 255).toUpperCase() + "-"; 
} 
return result.subString(0, result.length()-1); 

 Смежные вопросы

  • Нет связанных вопросов^_^