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

Jon*_*nas 12 java base64 scala sha1 playframework

我想使用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)))
Run Code Online (Sandbox Code Playgroud)

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

 type encode is not a member of object sun.misc.BASE64Encoder
Run Code Online (Sandbox Code Playgroud)

使用时:

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

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

Sir*_*ius 18

你好像忘记了一对括号:

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

这应该会更好.


Rég*_*gis 7

使用Play api更快更干净:

var signature = play.api.libs.Codecs.sha1(md.digest("Foo".getBytes))
Run Code Online (Sandbox Code Playgroud)

  • 只是`play.api.libs.Codecs.sha1(“ Foo” .getBytes)` (2认同)