如何在Scala和Play Framework中base64编码SHA-1哈希?

问题描述 投票:12回答:2

我想使用Play Framework在Scala中对生成的SHA-1哈希进行base64编码。

这在Scala中适用于我:

val md = java.security.MessageDigest.getInstance("SHA-1");
println(new sun.misc.BASE64Encoder().encode(md.digest("Foo".getBytes)))

但在Play Framework中我使用以下错误:

 type encode is not a member of object sun.misc.BASE64Encoder

使用时:

val md = java.security.MessageDigest.getInstance("SHA-1")
val ha = new sun.misc.BASE64Encoder.encode(md.digest(params.get("Foo").getBytes))

如何使用Scala和Play Framework生成SHA-1哈希和base64编码?

scala base64 playframework sha1 java
2个回答
18
投票

你好像忘记了一对括号:

val md = java.security.MessageDigest.getInstance("SHA-1")
val ha = new sun.misc.BASE64Encoder().encode(md.digest(params.get("Foo").getBytes))

这应该会更好。


6
投票

使用Play api更快更干净:

var signature = play.api.libs.Codecs.sha1(md.digest("Foo".getBytes))

玩2.7(也可能是旧版本)

var signature = play.api.libs.Codecs.sha1("Foo")
© www.soinside.com 2019 - 2024. All rights reserved.