Мне трудно найти замену двойным кавычкам для расшифровки парольной фразы:

gpg --passphrase-file "this is a sentence passphrase"} --batch -d --output myfile.txt myfile.gpg

Я пишу программу, чтобы обернуть gpg interactiveino, и работа с двойными кавычками портит это (я не могу удалить escape \", но это не вопросы ...)

Есть ли способ заменить двойные кавычки чем-то другим, когда парольная фраза является предложением с пробелами?

Спасибо

1 ответ1

0

У вас есть два варианта, либо использовать одиночные кавычки 'passphrase"withquotes' (но тогда вам больше не разрешено иметь одинарные кавычки в парольной фразе). В качестве альтернативы вам придется экранировать символ кавычки (и другие символы со специальными значениями): "passphrase\"withquotes" .

Вы объясняете, что пишете какую-то программу, которая требует обработки парольной фразы. Все разумные языки программирования должны иметь некоторую функцию или библиотеку, которая предоставляет готовые функции для экранирования bash.

В любом случае, вы никогда не должны передавать парольную фразу в качестве параметра (в любом случае вы используете неправильный аргумент, посмотрите параметры --passphrase... на справочной странице GnuPG): все остальные пользователи в системе могут читать все процессы ' командные строки, включая секретную фразу-пароль! Вместо этого используйте --passphrase-fd 0 и присоедините ваше приложение к STDIN GnuPG (как вы сделали бы с конвейером в командной строке), и передайте фразу-пароль в качестве ввода.

Используя GnuPG 2.1 и выше, вы больше не можете использовать опции --passphrase... без проблем. Посмотрите на «Почему GPGME / GnuPG использует пинентри для ввода пароля?" Для дальнейшего обсуждения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .