2016-06-03 11 views
1

Ich habe folgende Scala Funktion:MD5-Hashes verschiedene Werte mit dem gleichen Eingang

import java.security.MessageDigest 
def md5(s: String) = MessageDigest.getInstance("MD5").digest(s.getBytes).toString() 

Wenn ich die gleiche Zeichenfolge zu verschlüsseln, habe ich immer unterschiedliche Ergebnisse erhalten, was das Problem sein könnte? Es gibt keine neuen Zeilen oder Leerzeichen am Ende der Eingabezeichenfolgen, und alle haben die gleiche Länge.

+2

einen Blick auf den Rückgabewert Typ 'digest' haben und lesen http://stackoverflow.com/questions/29140402/how-do-i-print-my-java -Objekt-ohne-bekommen-somethype2f92e0f4 und dann die Kommentare auf http://StackOverflow.com/Questions/5992778/Computing-the-MD5-hash-of-Astring-in-Scala – zapl

+1

Während es scheint "leet" zu alles in eine Zeile setzen Debugging wirklich leidet, können Sie nicht die Zwischenwerte untersuchen, wenn Sie das würden Sie wahrscheinlich den Fehler finden. – zaph

Antwort

0

Sie wollen:

def md5(s: String) = { 
    MessageDigest.getInstance("MD5").digest(s.getBytes).map("%02x".format(_)).mkString 
}