2010-05-03 2 views
2

RijndaelManaged에서 PKCS7 패딩을 16 바이트 데이터로 사용하면 32 바이트의 데이터가 출력됩니다. PKCS7의 경우 데이터 크기가 블록 크기와 일치하면 여분의 전체 블록이 추가됩니다.Rijndael 데이터가 블록 크기와 일치 할 때의 패딩

16 바이트의 데이터에 0을 사용하면 16 바이트의 데이터가 나옵니다. 따라서 제로스 패딩의 경우 데이터가 블록 크기와 일치하면 패딩되지 않습니다.

필자는 설명서를 검색했으며 패딩 동작의 차이점에 대해서는 언급하지 않았습니다.

데이터 크기가 블록 크기와 일치 할 때 다른 채우기 모드에 맞게 채우기 동작을 지정하는 문서를 가리킬 수 있습니까?

답변

6

내가 검색하는 동안 발견 한 다른 기사와 함께 jibe로 보이는 설명을 제공하는 this 문서를 발견했습니다. 기본 이유는 다음과 같습니다.

데이터 길이가 블록 크기의 배수인 이면 어떻게되는지 궁금 할 수 있습니다. 이 시나리오에서 PaddingMode.None 및 PaddingMode.Zeros는 패딩을 추가하지 않습니다. 그러나 PaddingMode.PKCS7의 경우, 패딩은 덧씌우 기가없는 상황을 역전시킬 수있는 이어야하므로 암호를 추가해야합니다. 이 경우 추가 블록을 일반 텍스트에 추가해야하고 각 바이트의 값을 블록 크기 (바이트)로 설정해야합니다.