我正在J2ME中实现digest-md5。在计算客户端响应时,给出了以下步骤:
- 创建一个形式为"username:realm:password"的字符串。调用这个字符串X
- 计算X的16位MD5散列。调用结果Y
- 创建一个形式为"Y:nonce:cnonce:authzid"的字符串。将此字符串称为A1
- 创建一个格式为"AUTHENTICATE:摘要uri"的字符串。将这个字符串称为A2
- 计算A1的32位十六进制MD5散列。调用结果HA1
- 计算A2的32位十六进制MD5散列。将结果称为HA2
- 创建一个形式为"HA1:nonce:nc:conce:qop:HA2"的字符串。将此字符串称为KD
- 计算KD的32位十六进制MD5散列。将结果称为Z
这里有人知道如何执行步骤2吗?我有一个md5函数,它返回32个十六进制数字,但我不知道如何计算16个八位字节的md5哈希?
我只是想重申一下,我正在使用J2ME。在这种情况下,我不能简单地使用MessageDigest。
提前谢谢。:)
请参阅此
使用MD-5
而不是SHA 256