OTP S/KEY 一次性密码 - 折叠 MD5 摘要输出

发布于 2024-08-22 06:46:03 字数 196 浏览 3 评论 0原文

我正在尝试为手机创建一个一次性密码生成器。在 RFC2289 中,它指定我必须折叠 MD5 的输出,我正在使用充气城堡 MD5,但我无法弄清楚如何折叠字节数组输出。

for (int i = 0; i < 8; i++)
{
    md5[i] ^= md5[i+8];
}

这就是我到目前为止所拥有的

Im trying to create a one time password generator for a phone. In the RFC2289 it specifies that i must fold the output of the MD5, i'm using bouncy castle MD5 and i cant work out how to fold the byte array output.

for (int i = 0; i < 8; i++)
{
    md5[i] ^= md5[i+8];
}

This is what i have so far

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

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

发布评论

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

评论(1

颜漓半夏 2024-08-29 06:46:03

也许您想要这样:

for (int i = 0; i < 8; ++i)
    md5[i] ^= md5[i + 8];
return Arrays.copyOf(md5, 8);

这样,仅返回前 64 位(由 OTP 使用)。

Probably, you want this:

for (int i = 0; i < 8; ++i)
    md5[i] ^= md5[i + 8];
return Arrays.copyOf(md5, 8);

This way, only the first 64 bits (which are used by OTP) is returned.

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