我想使用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编码?
答案 0 :(得分:18)
你似乎忘记了一对括号:
val md = java.security.MessageDigest.getInstance("SHA-1")
val ha = new sun.misc.BASE64Encoder().encode(md.digest(params.get("Foo").getBytes))
这应该会更好。
答案 1 :(得分:6)
使用Play api更快更干净:
var signature = play.api.libs.Codecs.sha1(md.digest("Foo".getBytes))
播放2.7 (也可能是旧版本)
var signature = play.api.libs.Codecs.sha1("Foo")