可能是重复问题:
在Java中生成MD5哈希
你好,
我想在我的Scala代码中计算字符串的MD5哈希值。除了常规的java.security.MessageDigest方式之外,是否有任何Scala或Java库可以快速完成此操作?
请帮忙,谢谢。
可能是重复问题:
在Java中生成MD5哈希
你好,
我想在我的Scala代码中计算字符串的MD5哈希值。除了常规的java.security.MessageDigest方式之外,是否有任何Scala或Java库可以快速完成此操作?
请帮忙,谢谢。
你可能正在重新发明一个非常简单的轮子,但只需要编写一个函数来完成你想要的操作:接受一个字符串,使用MessageDigest,然后返回你所需的任何结果(十六进制字符串、字节数组)。
import java.security.MessageDigest
def md5(s: String) = {
MessageDigest.getInstance("MD5").digest(s.getBytes)
}
md5("Hello")
顺便说一下,我不会写Scala,但是这个代码可行,读者可以自己尝试将其转换成除了Array[Byte]以外的任何类型。
(apply str (map #(format "%02x" %) bytes))
。 - John Cromartiemap(0xFF & _)
并不必要,可以简单地写成.map("%02X".format(_)).mkString
。 - Alois Cocharddef md5Hash(text: String) : String = java.security.MessageDigest.getInstance("MD5").digest(text.getBytes()).map(0xFF & _).map { "%02x".format(_) }.foldLeft(""){_ + _}
- Priyank Desai
MessageDigest
的原因是什么? - Goran Jovicnet.liftweb.util.Helpers.md5(str)
- 当然,这只有在您已经在某个地方使用liftweb时才有意义... - Debilskiimport java.security.MessageDigest def getMD5Hash(myString: String): String = { val msgDigest:MessageDigest = MessageDigest.getInstance("MD5") val MD5Hash = msgDigest.digest(myString.getBytes()).map(0xFF & _).map { "%02x".format(_) }.foldLeft("") {_ + _} MD5Hash }
- Om Prakash