gpg скрипт и дешифрование - PullRequest
2 голосов
/ 26 мая 2011

Я пытаюсь зашифровать и расшифровать строки. Теперь я сделал это:

mis@fasan:~$ echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 > /tmp/1
Enter passphrase:
Repeat passphrase:
mis@fasan:~$
mis@fasan:~$ cat /tmp/1 | gpg --decrypt
gpg: AES256 encrypted data
Enter passphrase: 
gpg: encrypted with 1 passphrase
hallo
mis@fasan:~$ 

Это работает так же, как я хочу, чтобы это работало. Теперь я попробовал это с парольной фразой из файла, но это не сработало:

mis@fasan:~$ echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 --passphrase-fd 0 < /home/mis/testgpg > /tmp/1
Reading passphrase from file descriptor 0    
mis@fasan:~$
mis@fasan:~$ cat /tmp/1 | gpg --decrypt
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase

Очень интересно, что он просит пароль. Если я напишу неправильное сообщение, я получу сообщение об ошибке, но если я напишу правильную фразу-пароль, я не получу свою строку шифрования. Моя цель - достичь этого:

mis@fasan:~$ echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 --passphrase-fd 0 < /home/mis/testgpg > /tmp/1
Reading passphrase from file descriptor 0    
mis@fasan:~$
mis@fasan:~$ cat /tmp/1 | gpg --decrypt --passphrase-fd 0 < /home/mis/testgpg
Reading passphrase from file descriptor 0    
gpg: decrypt_message failed: eof
mis@fasan:~$

Но это тоже не работает. Кто-нибудь знает, что я делаю не так?

1 Ответ

4 голосов
/ 26 мая 2011

Вы пытаетесь протолкнуть и тест для шифрования (echo "hallo" |), и парольную фразу (< /home/mis/testgpg) через один и тот же файловый дескриптор (0, который является стандартным). Только одно из этих перенаправлений может быть успешным, и это парольная фраза. Используйте другой файл или файловый дескриптор для двух задач.

Например, используя дескриптор файла № 3 для парольной фразы:

echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 --passphrase-fd 3 3< /home/mis/testgpg > /tmp/1
...