如何将邮件地址转换为 Scala 中的哈希值

How can I convert a mail address to a hash in scala

我想获取我的邮件地址的哈希值并将其写入日志文件。

logger.info(s"[RestService] Get permission request for $email")

这是我的情况,但我怎样才能得到电子邮件的哈希值。

助手还是方法?

我建议您创建一个对象并覆盖 hashCode 方法。然后使用 scala.util.hashing.MurmurHash3 创建您的哈希码。

import scala.util.hashing.MurmurHash3

object TestMurmurHash {

  def main(args: Array[String]): Unit = {
    val email = MyObject("my_email@google.com")
    println(s"This is my email hash: $email and this is my hash: ${email.hashCode()}")

  }

  case class MyObject(val email: String) {

    override def equals(o: Any): Boolean = {
      this.hashCode() == o.hashCode()
    }

    override def hashCode(): Int = {
      MurmurHash3.stringHash(email)
    }

    def mailToHash(): Int = {
      MurmurHash3.stringHash(email)
    }
  }

}

输出:

This is my email hash: MyObject(my_email@google.com) and this is my hash: -585889836