回到主页

HMACSHA256 和 SHA1

HMACSHA256 和 SHA1应用场景和简单应用

· scala

HMACSHA256 和SHA1 都用于处理加密。

HMACSHA256加密的机密密钥。 键可以是任意长度。 但是,建议的大小是 64 字节。 如果键是多于 64 个字节,它哈希 (使用 sha-256) 派生一个 64 字节的密钥。 如果是少于 64 个字节,它被填充到 64 个字节。

SHA1的全称是Secure Hash Algorithm(安全哈希算法)。加密哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。加密哈希函数有这样一个属性:在计算上不大可能找到散列为相同的值的两个不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。



代码展示:

def generateHMAC(totalParams: String): Option[String] = {

    try {

      val secret = new SecretKeySpec(sk.getBytes, "HmacSHA256")

      val mac = Mac.getInstance("HmacSHA256")

      mac.init(secret)

      val hashString: Array[Byte] = mac.doFinal(totalParams.getBytes)

      Some(hashString.map("%02x" format _).mkString)

    } catch {

      case e: Exception =>

        Logger.error("sign: " + e.toString)

        None
    }
  }


17:23


//SHA1用以哈希加密的的代码展示

  def toHash(password: String) = {

    val sha1: MessageDigest = MessageDigest.getInstance("SHA-1")

    sha1.reset()

    sha1.update(password.getBytes("UTF-8"))

    sha1.digest().map("%02x" format _).mkString

  }