2011-06-13 18 views
10

Me gustaría basar64 para codificar un hash SHA-1 generado en Scala usando Play Framework.¿Cómo base64 codificar un hash SHA-1 en Scala y Play Framework?

Esto funciona para mí en Scala:

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

Pero en el Marco de Juego Me aparece un error usando:

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

cuando se utiliza:

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

¿Cómo puedo generar una ¿SHA-1 hash y base64 lo codifican usando Scala y Play Framework?

Respuesta

18

Se parecen haber olvidado un par de paréntesis:

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

que debería funcionar mejor.

5

más rápido y más limpio con Play api:

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

sólo play.api.libs.Codecs.sha1 (.getBytes "foo") '' – Intracer