3

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

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

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

4

1 回答 1

1

可能,你想要这个:

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

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

于 2010-02-18T23:18:55.257 回答