在 J2ME 中实现 Digest-MD5:如何计算字符串的 16 个八位字节 MD5 散列?

发布于 2024-11-17 02:12:44 字数 599 浏览 5 评论 0原文

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

  1. 创建“用户名:领域:密码”形式的字符串。将此字符串称为 X。
  2. 计算 X 的 16 个八位字节 MD5 哈希值。将结果称为 Y。
  3. 创建格式为“Y:nonce:cnonce:authzid”的字符串。将此字符串命名为 A1。
  4. 创建“AUTHENTICATE:digest-uri”形式的字符串。将此字符串命名为 A2。
  5. 计算 A1 的 32 位十六进制数字 MD5 哈希值。将结果称为 HA1。
  6. 计算 A2 的 32 位十六进制数字 MD5 哈希值。将结果称为 HA2。
  7. 创建“HA1:nonce:nc:cnonce:qop:HA2”形式的字符串。将此字符串称为 KD。
  8. 计算 KD 的 32 位十六进制数字 MD5 哈希值。将结果称为 Z。

这里有人知道如何实现步骤 2 吗?我有一个返回 32 十六进制数字的 md5 函数,但我不知道如何计算 16 个八位字节的 md5 哈希值?

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

先感谢您。 :)

I am implementing digest-md5 in J2ME.In the computation of the client response, the following steps are given:

  1. Create a string of the form "username:realm:password". Call this string X.
  2. Compute the 16 octet MD5 hash of X. Call the result Y.
  3. Create a string of the form "Y:nonce:cnonce:authzid". Call this string A1.
  4. Create a string of the form "AUTHENTICATE:digest-uri". Call this string A2.
  5. Compute the 32 hex digit MD5 hash of A1. Call the result HA1.
  6. Compute the 32 hex digit MD5 hash of A2. Call the result HA2.
  7. Create a string of the form "HA1:nonce:nc:cnonce:qop:HA2". Call this string KD.
  8. Compute the 32 hex digit MD5 hash of KD. Call the result Z.

Does anyone here know how to implement step 2? I have a md5 function that returns a 32 hex digit but i don't know how to compute a 16 octet md5 hash?

I just would like to reiterate that I am using J2ME. In that case I can not simply use MessageDigest.

Thank you in advance. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

金橙橙 2024-11-24 02:12:44

请参阅

使用MD-5改为 SHA 256

see this

use MD-5 instead SHA 256

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文