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
로 복호화하고 싶지만 잘못된 매직 넘버가 있습니다.
어제 동일한 매개 변수로 암호화 된 파일이 복호화됩니다. 알겠습니다.
무슨 일이 일어 났을까요? 이 보관 파일을 검색 할 수 있습니까?
답변
OpenSSL로 암호화 한 경우 < = 1.0.2이고 OpenSSL 1.1.0으로 복호화하는 경우 다음과 같습니다.
https://www.openssl.org/docs/faq.html#USER3
암호에서 키를 생성하는 데 사용되는 기본 해시는 1.0.2에서 1.1.0 사이로 변경되었습니다. 복호화 명령에 -md md5
를 추가해보세요.
댓글
답변
아래 명령은 저에게 고통을주었습니다.
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:
댓글
- 두 번째 명령, 암호를 해독하지 않습니다 (
-d
) …
Answer
이 오류의 일반적인 원인은 암호에서 OpenSSL에 의해 계산 된 키가 잘못되어 데이터를 암호화 한 키와 동일하지 않기 때문입니다.
이 오류가 표시 될 수있는 한 가지 이유 원래 질문과는 다른 상황에서 예를 들어 Java로 암호화하고 SSL을 사용하여 복호화하는 것과 같이 OpenSSL이 아닌 다른 도구를 사용하여 암호화하는 경우입니다.
Java 용 솔루션보기 : https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564
-nosalt
또는 정말 고대 OpenSSL (최대 0.9.6 이전)으로 암호화 된 파일 만 가능합니다.