GPG를 사용하여 대칭적으로 암호화된 파일을 해독하는 방법은 무엇입니까?

GPG를 사용하여 대칭적으로 암호화된 파일을 해독하는 방법은 무엇입니까?

GPG를 사용하여 파일을 만들고 대칭적으로 암호화했습니다.

touch test.txt && echo 'test' >> test.txt
gpg --output test.txt --symmetric test.txt

하지만 지금은 그것을 해독하는 방법을 모르고 놀랍게도 온라인에서 예제를 찾을 수 없습니다. 내가 시도한 것은 다음과 같습니다.

$ gpg --decrypt test.txt
gpg: AES encrypted data
gpg: encrypted with 1 passphrase
$ gpg --symmetric --decrypt test.txt
gpg: conflicting commands
$ gpg --passphrase --decrypt test.txt
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: Unknown system error
$ gpg --decrypt --output test_decrypted.txt test.txt
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: Unknown system error

내가 뭘 잘못했나요?

답변1

올바른 명령은

gpg --decrypt test.txt

그러나 gpg입력을 읽기 전에 출력을 덮어쓰므로 test.txt원본 콘텐츠가 손실됩니다.

다른 파일로 암호화해야 합니다.

gpg --output test.gpg --symmetric test.txt

답변2

사용법은 --symmetric혼란스러울 정도로 비대칭인 것 같습니다.

  • 암호화를 위해 사용해야 --symmetric하지만,
  • 해독을 위해 --decrypt.

또한 결과를 다른 파일로 출력합니다.

완전히 재현 가능한 예(일괄 처리 모드를 사용하고 아무 메시지도 표시하지 않음):

#!/bin/bash

echo "Some important content" > a.txt
[ -f a.txt.gpg ] && rm a.txt.gpg
[ -f b.txt ] && rm b.txt

echo "secret" | gpg --batch --passphrase-fd 0 --output a.txt.gpg --symmetric a.txt
echo "secret" | gpg --batch --passphrase-fd 0 --output b.txt --decrypt a.txt.gpg

echo "------------------------- a.txt"
cat a.txt

echo "------------------------- b.txt"
cat b.txt

diff a.txt b.txt && echo "Files have the same content"


관련 정보