Liebe community
Ich verstehe nicht, wieso es bei der Ausgabe zwischen den beiden untenstehenden Varianten, diesen Unterschied gibt. Was zur Hölle gibt die Variante "plain Java" zurück? Ein Binärer String ist es nicht, da dieser ja nur aus 1 und 0 bestehen müsste. Kann mir das jemand plausibel erklären.
Mein Verständnis:
Bei 2. wird zuerst das Password in ein Bytearray gewandelt. Danach wird aus dem Bytearray ein Bytearray mit dem Hashwert des Passwords erzeugt. Am Schluss wird das gehashte Bytearray als String ausgegeben. Wieso dann dieser Unterschied zur Variante 1.
Ich verstehe nicht, wieso es bei der Ausgabe zwischen den beiden untenstehenden Varianten, diesen Unterschied gibt. Was zur Hölle gibt die Variante "plain Java" zurück? Ein Binärer String ist es nicht, da dieser ja nur aus 1 und 0 bestehen müsste. Kann mir das jemand plausibel erklären.
Mein Verständnis:
Bei 2. wird zuerst das Password in ein Bytearray gewandelt. Danach wird aus dem Bytearray ein Bytearray mit dem Hashwert des Passwords erzeugt. Am Schluss wird das gehashte Bytearray als String ausgegeben. Wieso dann dieser Unterschied zur Variante 1.
Java:
String password = "1234";
// 1. hashing with Google Guava:
String hashed = Hashing.sha256().hashString(password, StandardCharsets.UTF_8).toString();
System.out.println(hashed); // 03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4
// 2. hashing with plain Java
byte[] bytePassword = password.getBytes("UTF-8");
MessageDigest sha = MessageDigest.getInstance("SHA-256");
byte[] key = sha.digest(bytePassword);
System.out.println(new String(key)); // �gB��\v��U�g�6#ȳ��E��x��F�