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

时间:2010-02-18 22:36:29

标签: java-me one-time-password

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

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

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

1 个答案:

答案 0 :(得分:1)

可能你想要这个:

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

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