1

我想在 Dojo 中生成一个与我在 Java 中的哈希匹配的 MD5 哈希,使用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

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

API 文档令人困惑。你不传入一个对象,只是输出类型,它只是一个常量整数。

演示: JSFiddle

参考: API , 指南

于 2013-03-18T22:31:03.793 回答
0

这就是 Base64 编码。如果您愿意在 Java 端进行解码(与 MessageDigest 输出进行比较),则可以使用 Apache Commons 编解码器的decodeBase64方法获取字节数组,然后比较 MessageDigest 输出的字节数组

如果你想在 javascript 端进行比较,我会改为使用encodeBase64String来编码来自 MessageDigest 的字节数组,并在 JS 端比较 base64 字符串。

于 2013-01-21T17:54:40.513 回答