我在 J2ME 中实现了 digest-md5。在计算客户端响应时,给出了以下步骤:
- 创建一个“用户名:领域:密码”形式的字符串。将此字符串称为 X。
- 计算 X 的 16 个八位字节的 MD5 散列。将结果称为 Y。
- 创建一个“Y:nonce:cnonce:authzid”形式的字符串。将此字符串称为 A1。
- 创建一个“AUTHENTICATE:digest-uri”形式的字符串。将此字符串称为 A2。
- 计算 A1 的 32 位十六进制数字 MD5 哈希。调用结果 HA1。
- 计算 A2 的 32 位十六进制数字 MD5 哈希。调用结果 HA2。
- 创建一个格式为“HA1:nonce:nc:cnonce:qop:HA2”的字符串。将此字符串称为 KD。
- 计算 KD 的 32 位十六进制数字 MD5 哈希。调用结果 Z。
这里有人知道如何实施第2步吗?我有一个返回 32 十六进制数字的 md5 函数,但我不知道如何计算 16 个八位字节的 md5 哈希?
我只想重申我正在使用 J2ME。在那种情况下,我不能简单地使用 MessageDigest。
先感谢您。:)