이 질문이 있습니다. 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