2011-06-13 41 views
10

我想使用Play Framework在Scala中對生成的SHA-1散列進行base64編碼。如何在Scala和Play Framework中對SHA-1散列進行base64編碼?

這個工作對我來說在斯卡拉:

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

但在遊戲框架,我得到使用錯誤:

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)) 

我怎麼能生成SHA-1哈希和base64使用Scala和Play Framework對其進行編碼?

回答

18

你似乎忘了一對括號:

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

這應該更好地工作。

5

更快,播放API清潔:

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

只是'play.api.libs.Codecs.sha1( 「富」 .getBytes)' – Intracer 2017-02-08 23:00:37

相關問題