2016-06-03 2 views
1

У меня есть следующая функция Scala:MD5-хэш различных значений с одинаковым входом

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

Когда я зашифровать ту же строку, я всегда получаю разные результаты, что может быть проблемой? В конце входных строк нет новых строк или пробелов, и все они имеют одинаковую длину.

+2

взглянуть на тип возвращаемого значения 'digest' и читать http://stackoverflow.com/questions/29140402/how-do-i-print-my-java -объект-без-получения-sometype2f92e0f4, а затем комментарии по http://stackoverflow.com/questions/5992778/computing-the-md5-hash-of-a-string-in-scala – zapl

+1

Хотя кажется, что "leet" поместить все в одну строку, отладка действительно страдает, вы не можете проверить промежуточные значения, если бы вы это сделали, вы, вероятно, нашли бы ошибку. – zaph

ответ

0

Вы хотите:

def md5(s: String) = { 
    MessageDigest.getInstance("MD5").digest(s.getBytes).map("%02x".format(_)).mkString 
} 
Смежные вопросы