ワテのブログ

The fundamental things apply As time goes by.

2010年8月5日木曜日

haskellでmd5

スポンサーリンク
1.haskellをインストールする。
DownloadHaskell
から、自分のプラットフォームのパッケージをダウンロードする。

2.nano-md5 Packageをインストールする。
HackageDB: nano-md5-0.1.2もしくは、
HackageDB: pureMD5-0.2.4
からtarballをダウンロード。解凍後、
$ runhaskell Setup configure
$ runhaskell Setup build
$ sudo runhaskell Setup install
Pureな方は、Updateが使えるので、データ全体をByteStringにする必要がない。
nanoは、OpenSSLのmd5をffi経由で呼び出している模様。

3.使い方
nanoの場合
import Data.Digest.OpenSSL.MD5
md5sum $ Data.ByteString.Char8.pack "hoge"

Pureの場合
import Data.Digest.Pure.MD5
md5 $ Data.ByteString.Lazy.Char8.pack "hoge"

PureでUpdateを使う場合
import Data.Digest.Pure.MD5
import qualified Data.ByteString.Lazy.Char8 as B

md5lines :: [String] -> String
md5lines lines = show $ loop md5InitialContext lines
    where
        loop ctx (x:xs) = loop (md5Update ctx (B.pack x)) xs
        loop ctx [] = md5Finalize ctx

main = putStrLn $ md5lines ["foo","bar"]
この場合、改行コードが計算に含まれないことに注意。
スポンサーリンク

0 件のコメント:

コメントを投稿