我想在Dojo中生成一个MD5哈希,它将使用MessageDigest
匹配我在Java中的哈希值。我想在Dojo中生成一个基本的16 md5哈希。你是怎么做到的?
dojo.require("dojox.encoding.digests.MD5");
var d = dojox.encoding.digests.MD5("test");
//gives me CY9rzUYh03PK3k6DJie09g==
//was hoping for 098f6bcd4621d373cade4e832627b4f6
我没有在网上找到太多关于此的文档。
答案 0 :(得分:3)
dojo MD5方法有第二个参数接受 outputType :
d = dojox.encoding.digests.MD5("test", dojox.encoding.digests.outputTypes.Hex);
API文档令人困惑。你不能传入一个对象,只传递输出类型,它只是一个常数整数。
演示: JSFiddle
答案 1 :(得分:0)
这是Base64编码。如果您愿意在Java端进行解码(与MessageDigest输出进行比较),那么您可以使用Apache Commons编解码器中的decodeBase64方法获取字节数组,然后比较MessageDigest的字节数组输出
如果你想在javascript方面进行比较,我会使用encodeBase64String来编码来自MessageDigest的字节数组,并比较JS端的base64字符串。