« 論理演算1 | メイン | sha1.js »

md5.js

JavaScriptでMD5を計算するライブラリを作りました.

○特長
webでよく見られるいくつかの同種のライブラリに比べて3~7倍ほど高速に計算します.

○ダウンロード(download)
md5.js

○仕様
ASCII文字列を渡すとそのMD5を計算して16進数文字列で返します.
文字列に漢字などが含まれている場合は二つ目の引数にCybozuLabs.MD5.BY_UTF16を指定してください.UTF16として処理します.

○使い方1
var str = CybozuLabs.MD5.calc("abc");
if (str == "900150983cd24fb0d6963f7d28e17f72") {
...
}
○使い方2
var str = CybozuLabs.MD5.calc("あ", CybozuLabs.MD5.BY_UTF16);

○ライセンス
修正BSDライセンスにしたがいます.

○動作環境
Windows Xp + IE6, Firefox, Mac OS X + Safariで動作確認をしています.

○ベンチマーク
var msg = "MD5abZRVSXZVRcasdfasdddddddddddddddds+BNRJFSLKJFN+SEONBBJFJXLKCJFSE)RUNVXDLILKVJRN)#NVFJ)WVFWRW#)NVS$Q=$dddddddddddddWV;no9wurJFSE)RUNVXDLILKVJRN)#NVFJ)WVFWRW#)NVS$Q=$dddddddddddddWV;no9wurJFSE)RUNVXDLILKVJRN)#NVFJ)WVFWRW#)NVS$Q=$dddddddddddddWV;no9wurJFSE)RUNVXDLILKVJRN)#NVFJ)WVFWRW#)NVS$Q=$dddddddddddddWV;no9wuraddddddasdfasdfd";
という文字列に対してMD5の計算を100回ループしたときの処理時間を測定しました.
比較対象は高度な JavaScript 技集JavaScript でハッシュアルゴリズムで公開されているライブラリです.

環境:Windows Xp Sp2 Core2Duo 2.66GHz 2GB memory
IE6:
test1 my lib
time = 0.79msec
test 2 高度な JavaScript 技集
time = 5.31msec
test 3 JavaScript でハッシュアルゴリズム
time = 3.28msec

Firefox:
test1 my lib
time = 0.94msec
test 2 高度な JavaScript 技集
time = 7.03msec
test 3 JavaScript でハッシュアルゴリズム
time = 7.5msec

幅はありますが4~8倍程度高速に計算されていることが分かります.

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)