암호화할 file.txt 파일을 준비합니다.
$ openssl enc -base64 -in file.txt -out file.txt.enc
$ openssl enc -base64 -d -in file.txt.enc -out file.txt.dec
file.txt
란 파일을 암호화한 결과를 file.txt.enc
로 출력합니다.
이어서 file.txt.enc
파일을 복호화한 결과를 file.txt.dec
로 출력합니다.
위 과정은 별도의 비밀번호 입력없이 암호화와 복호화를 진행합니다.
암호를 통한 암호화 & 복호화
$ openssl aes-256-cbc -in file.txt -out file.txt.enc
$ openssl aes-256-cbc -in file.txt.enc -out file.txt.dec
이전 예시와 달리 암호를 물어보는 과정이 포함되어 있습니다.
공개키 비밀키를 통한 암호화 & 복호화
암호화
// 랜덤암호 파일 생성
$ openssl rand 192 -out key
// 키 파일로 암호화
$ openssl aes-256-cbc -in secret.txt -out secret.txt.enc -pass file:key
// 공개키를 pkcs8 포맷으로 변환
$ ssh-keygen -e -f ~/.ssh/id_rsa.pub -m PKCS8 > ~/.ssh/id_rsa.pub.pkcs8
// 생성한 pkcs8 파일로 키 파일 암호화
$ openssl rsautl -encrypt -pubin -inkey ~/.ssh/id_rsa.pub.pkcs8 -in key -out key.enc
// 압축하기
$ tar -zcvf secret.tgz *.enc
복호화
// 압축풀기
$ tar -xzvf secret.tgz
// 비밀키로 키 파일 복호화
$ openssl rsautl -decrypt -ssl -inkey ~/.ssh/id_rsa -in key.enc -out key
// 키 파일로 복호화
$ openssl aes-256-cbc -d -in secret.txt.enc -out secret.txt -pass file:key
공개키로 암호화하고 비밀키로 복호화가 추가되었습니다.