Sha Hash für Strings mit Java

Da der gute alte MD5 Hash ja schon einige Jahre auf dem Buckel hat und schon längst nicht mehr als sicher gilt, sollte man sich langsam Gedanken machen und auf einen neueren Algorithmus entscheiden. Da das selbe auch für den neueren SHA-1 Hash gilt müssen wir noch einen Schritt weiter gehen.
Hier möchte ich nun kurz eine Implementierung der SHA Algorithmus in Java preis geben. Mit dieser Lösung ist es möglich SHA Hashes für SHA-1, SHA-256, SHA-384 und SHA-512 zu erstellen. Dabei ist zu beachten, das bei längerer Schlüssellänge die CPU Last steigt, da die Berechnung doch ein wenig Aufwändiger ist.

Die folgende Funktion erstellt einen SHA-256 Hash Wert für den Text "Create my hash" und gibt diesen in der Konsole aus.

  1. public static void getHash() throws NoSuchAlgorithmException
  2. {
  3. String value = "Create my hash";
  4.  
  5. MessageDigest md = MessageDigest.getInstance("SHA-256");
  6. md.update(value.getBytes());
  7.  
  8. byte byteData[] = md.digest();
  9.  
  10. //konvertiere byte nach hex
  11. for (int i = 0; i < byteData.length; i++)
  12. {
  13. sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
  14. }
  15.  
  16. System.out.println(sb.toString());
  17. }

Das ergebnis sollte wie folgt aussehen:
868091a71d8126681e45c6aa7816e390f5607f4b97d65cf69e3fc7b07436b8fe

Alternativ kann man auf den Creator

  1. MessageDigest md = MessageDigest.getInstance("SHA-256");

mit anderen Werten befüllen und so einen andere (Sha)Hash verwenden.

Mögliche Werte sind (un nur ein paar zu nennen):

  • SHA-1
  • SHA-256
  • SHA-384
  • SHA-512

Neuen Kommentar schreiben