我正在尝试为手机创建一次性密码生成器。在RFC2289中,它指定我必须折叠MD5的输出,我正在使用充气城堡MD5,我不知道如何折叠字节数组输出。
for (int i = 0; i < 8; i++)
{
md5[i] ^= md5[i+8];
}
这是我到目前为止所拥有的
答案 0 :(得分:1)
可能你想要这个:
for (int i = 0; i < 8; ++i)
md5[i] ^= md5[i + 8];
return Arrays.copyOf(md5, 8);
这样,只返回前64位(由OTP使用)。