【发布时间】:2010-02-18 22:36:29
【问题描述】:
我正在尝试为手机创建一次性密码生成器。在 RFC2289 中,它指定我必须折叠 MD5 的输出,我使用的是充气城堡 MD5,但我无法弄清楚如何折叠字节数组输出。
for (int i = 0; i < 8; i++)
{
md5[i] ^= md5[i+8];
}
这是我目前所拥有的
【问题讨论】:
我正在尝试为手机创建一次性密码生成器。在 RFC2289 中,它指定我必须折叠 MD5 的输出,我使用的是充气城堡 MD5,但我无法弄清楚如何折叠字节数组输出。
for (int i = 0; i < 8; i++)
{
md5[i] ^= md5[i+8];
}
这是我目前所拥有的
【问题讨论】:
也许,你想要这个:
for (int i = 0; i < 8; ++i)
md5[i] ^= md5[i + 8];
return Arrays.copyOf(md5, 8);
这样,只返回前 64 位(OTP 使用)。
【讨论】: