[Scala]MD5 ハッシュ値

2011年12月26日

ScalaでMD5を生成するには…

Javaのライブラリを呼び出して生成することになります。
[scala]import java.security.MessageDigest
val digestedBytes = MessageDigest.getInstance("MD5").digest("arekore".getBytes)
digestedBytes.map("%02x".format(_)).mkString[/scala]
Rubyの場合は
[scala]require 'digest/md5’
Digest::MD5.new.update('arekore’)[/scalaa]
となります。

番外で、ScalaのLiftでは、md5(in: String)というヘルパーがありますが、これはBase64エンコードしてmd5生成しているような感じなので、Rubyでのmd5値とは一致しません。

なので、一致させたい場合は
[scala]def myMd5(in: String): String = md5(in.getBytes).map("%02x".format(_)).mkString[/scala]
とする必要あります。

もう一つ番外で

ScalaのMessageDigestで使えるアルゴリズムの一覧を得るには
[scala]Security.getAlgorithms("MessageDigest")[/scala]
とする

Lift,Scala

Posted by GENDOSU