Java me 在J2ME中实现Digest-MD5:如何计算字符串的16个八位MD5哈希?

Java me 在J2ME中实现Digest-MD5:如何计算字符串的16个八位MD5哈希?,java-me,md5,digest-authentication,Java Me,Md5,Digest Authentication,我正在J2ME中实现digest-md5。在计算客户端响应时,给出了以下步骤: 创建一个“username:realm:password”格式的字符串。把这个字符串称为X 计算X的16个八位MD5散列。调用结果Y 创建一个格式为“Y:nonce:cnonce:authzid”的字符串。把这个字符串称为A1 创建一个格式为“AUTHENTICATE:digest uri”的字符串。把这个字符串称为A2 计算A1的32个十六进制数字MD5散列。调用结果HA1 计算A2的32个十六进制数字MD5散列。

我正在J2ME中实现digest-md5。在计算客户端响应时,给出了以下步骤:

  • 创建一个“username:realm:password”格式的字符串。把这个字符串称为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吗?我有一个md5函数,它返回32个十六进制数字,但我不知道如何计算16个八位md5哈希

    我只想重申我正在使用J2ME。在这种情况下,我不能简单地使用MessageDigest

    提前谢谢。:)


    使用
    MD-5
    代替SHA 256

    谢谢你的回答!:)然而,MessageDigest不适用于JavaJ2ME。而且,我已经解决了我的问题!感谢这个博客:@Kenneth我知道这是一个非常古老的问题,但我面临着一个类似的问题。我正在使用XMPP库,该库由解决您问题的帖子作者制作。但是,这个库并没有按照XMPP定义的方式创建响应(问题中的步骤)。我的问题是:在blogspot文章中实现了like之后,您能够登录到XMPP服务器吗?我不能用那个家伙库这么做…嗨,Kenneth,在服务器端使用摘要身份验证,我正在尝试连接url,但我不能,因为有身份验证,所以你能告诉我如何用HttpConction在j2me中进行摘要身份验证吗。