1

を使用して、Javaのハッシュと一致するMD5ハッシュをDojoで生成したいと思いますMessageDigest。Dojoでベース16のmd5ハッシュを生成しようとしています。これはどうやるんですか?

dojo.require("dojox.encoding.digests.MD5");
var d = dojox.encoding.digests.MD5("test");

//gives me CY9rzUYh03PK3k6DJie09g== 

//was hoping for 098f6bcd4621d373cade4e832627b4f6 

私はこれについてオンラインで多くのドキュメントを見つけていません。

4

2 に答える 2

3

Dojo MD5 メソッドには、outputTypeを受け入れる 2 番目のパラメーターがあります。

d = dojox.encoding.digests.MD5("test", dojox.encoding.digests.outputTypes.Hex);

API ドキュメントはわかりにくいです。オブジェクトを渡すのではなく、定数整数である出力タイプだけを渡します。

デモ: JSFiddle .

参照: APIガイド

于 2013-03-18T22:31:03.793 に答える
0

それが Base64 エンコーディングです。(MessageDigest 出力と比較するために) Java 側でデコードを行う場合は、Apache Commons コーデックのdecodeBase64メソッドを使用してバイト配列を取得し、MessageDigest からのバイト配列出力を比較できます。

JavaScript側で比較したい場合は、代わりにencodeBase64Stringを使用してMessageDigestからのバイト配列をエンコードし、JS側でbase64文字列を比較します。

于 2013-01-21T17:54:40.513 に答える