我想为Scala 2.11中的字符串生成非加密哈希码
我在网上找了一个名为MurmurHash3的课程但是当我尝试使用它时,我得到了一个非常无益的class MurmurHash3 in package hashing cannot be accessed in package scala.util.hashing
为什么我无法访问该软件包?还有其他选择吗?
答案 0 :(得分:4)
private[hashing] class MurmurHash3
你需要什么,是一个伴侣对象MurmurHash3。不要试图实例化它。只需使用它的方法,就像在静态类
中一样util.hashing.MurmurHash3.stringHash("")
答案 1 :(得分:1)
MurmurHash3
的公开实例对象不是类:
Welcome to Scala version 2.11.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_65)
Type in expressions to have them evaluated.
Type :help for more information.
scala> scala.util.hashing.MurmurHash3.arrayHash(Array(10,20,30))
res0: Int = -864874452
答案 2 :(得分:0)
您可以尝试使用java security.MessageDigest
在scala中生成哈希码。它将为相同的输入字符串生成相同的哈希码。我在Scala 2.11.x
import java.security.MessageDigest
def getMD5Hash(fileName: String): String = {
val msgDigest:MessageDigest = MessageDigest.getInstance("MD5")
val MD5Hash = msgDigest.digest(fileName.getBytes()).map(0xFF & _).map { "%02x".format(_) }.foldLeft("") {_ + _}
MD5Hash
}
希望它有帮助!