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 に答える