복호화 시 매직넘버 오류

복호화 시 매직넘버 오류

4월에 나는 다음 명령을 사용하여 파일을 암호화했습니다.

openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil

이제 이를 해독하는 데 사용하고 싶습니다.

openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2

하지만 내가 얻은 매직넘버는 형편없었다.

동일한 매개변수를 사용하여 어제 암호화된 파일은 정상적으로 복호화될 수 있습니다.

무슨 일이 일어날 수 있었나요? 이 아카이브 파일을 검색할 수 있나요?

답변1

OpenSSL <=1.0.2를 사용하여 암호화하고 OpenSSL 1.1.0을 사용하여 해독하는 경우 다음과 같을 수 있습니다.

https://www.openssl.org/docs/faq.html#USER3

1.0.2와 1.1.0 사이에서 변경된 비밀번호에서 키를 생성하는 데 사용되는 기본 해시입니다. -md md5암호 해독 명령에 추가해 보세요 .

답변2

완전성을 위해: 암호화-ㅏ매개변수(base64 인코딩/디코딩 수행(별칭 - base64)) 없이 암호를 해독하면 잘못된 매직 넘버가 생성됩니다.

답변3

이 오류의 일반적인 원인은 OpenSSL이 비밀번호를 기반으로 잘못된 키를 계산한다는 것입니다. 즉, 해당 키가 데이터를 암호화하는 데 사용된 키와 다릅니다.

원래 질문과 다른 시나리오에서 이 오류가 발생하는 이유 중 하나는 암호화에 Java를 사용하고 암호 해독에 SSL을 사용하는 등 암호화에 OpenSSL 이외의 도구를 사용하는 경우입니다.

여기에서 Java 솔루션을 참조하세요.https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

답변4

다음 명령은 나에게 고통을 안겨줍니다.

openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2
enter aes-256-cbc decryption password:
bad magic number

다음 명령으로 문제가 해결되어 행복해졌습니다.

openssl aes-256-cbc -md md5 -in hotmama.tar.bz2.enc -out hotmama.tar.bz2
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

관련 정보