私はこの質問をしています。 56ビットのキーと64ビットの入力ブロックサイズのDESの暗号化が与えられました。56ビットDESが64ビットにパディングされ、1バイトの復号化の不足が発生しました
ブロックサイズは8バイトで、最初の7番目のバイトを復号化することができました。しかし、最後のバイトについては、DESは56ビットであり、64ビットにパディングされているので、解読されたメッセージは1バイト不足です。
私が7回目のループに到達するまでに、plaintext1は既に空であり、したがって1バイト不足です。
これを解決する方法はありますか?
編集
String plaintext1 = "ZZZZZZZ";
//removed line
System.out.println(Arrays.toString(plaintext1 .getBytes()));
System.out.println(plaintext1);
public static byte[] paddingBytes(byte[] input, int blockSize) {
int paddingSize = (blockSize - (input.length % blockSize)) % blockSize;
byte[] padding = new byte[paddingSize];
return concat(input, padding);
}
詳細については、コードとデータをご提供ください。 – zaph
@zaph質問が更新されました。申し訳ありませんが、これは私の割り当てであり、私は剽窃を恐れていますので、私はコンセプトについて記述することができます。 – guest176969
@zaphどのようなアイデアですか? – guest176969