2

次のコードを使用して AESCMAC を取得しています

Mac mac = Mac.getInstance("aescmac", new BouncyCastleProvider());
mac.init(k_mac );
byte[] tooLong = mac.doFinal(tmp);

doFinal は、サイズが 16 の byte-Array を生成しますが、長さを 8 バイトにしたいと考えています。戻り値が 16 の getMacLength() メソッドがありますが、setMacLength メソッドはありません。あなたの助けをthx

4

3 に答える 3

1

AES-CMACは、128ビットMAC(https://www.rfc-editor.org/rfc/rfc4493を参照)、つまり16バイトを生成します。8バイトのMACが必要な場合は、64ビットのMACを生成するアルゴリズムを選択してください。

128ビットのMACではなく64ビットが必要な特別な理由はありますか?

于 2011-10-05T09:32:23.683 に答える
-1

長さを短くすることはできないと思います。情報の長さは 16 バイトです。情報を失うことなく短縮することはできません。

于 2011-10-05T09:21:42.787 に答える