2012-02-15 2 views
1

zip 스트림을 해독 할 때 이상한 문제가 발생했습니다.Java AES가 잘못된 헤더로 zip 파일을 암호 해독합니다.

주어진 스트림을 암호 해독 한 후 정확히 8 바이트 헤더와 다른 바이트 배열을 가지고 있습니다.

50BO3 04 (Zip 사양에 따라)이어야하지만 달라집니다.

C에서 동일한 스트림을 해독 할 때 헤더가 정확합니다. 나는 RijndaelManaged, 모드 CBC, 패딩 ZeroBytePadding 및 블록 크기 = 128을 사용합니다.

자바에서는 AES/CBC/NoPadding 블록 크기 = 128을 사용하여 암호를 해독합니다.

나는 이유는 패딩이지만 다른 이유는 바이트의 나머지 부분이 정확한지 이해할 수 없다.

누군가 나에게 설명 할 수 있습니까?

고맙습니다.

+0

암호 해독 중에 초기화 벡터로 무엇을 사용하고 있습니까? IV가 무엇인지 모를 경우, 그것은 당신의 문제입니다. – erickson

+0

당신이 옳았어요. 원인이 잘못되었습니다. 고마워. 사랑 stackoverflow. 사람들이 더 행복해질 것입니다. – nixspirit

답변

2

CBC 모드에서 패딩 모드는 메시지의 마지막 바이트에만 영향을 주며 첫 번째 바이트는 영향을 미치지 않습니다 (예 : ZeroBytePadding에서 NoPadding까지 추가 끝에 0 바이트가 추가 될 수 있음).

첫 번째 블록이 다르지만 (나머지는 일치하는 경우) 가장 가능성있는 원인은 암호화 및 암호 해독에서 다른 초기화 벡터입니다. 이것을 확인하십시오.

+0

당신이 옳았다. 원인이 잘못되었습니다. 고마워. – nixspirit

관련 문제