Как преобразовать двоичный файл gpg4win в ascii, с помощью Notepad ++

514
get_going

Я могу надежно преобразовать ascii gpg4win в бинарный файл, используя опцию Notepad ++ «Base64 Decode» (кредит: Джеймс К. Полк). Работает каждый раз.

Но когда я пытаюсь сделать обратное, то есть преобразовать двоичный файл в ascii, он иногда работает, а иногда нет. Вот как я это делаю:

  • Откройте двоичный файл в Notepad ++ и выберите «Кодирование Base64».
  • Вручную добавьте строки сообщений BEGIN / END PGP (----- BEGIN PGP MESSAGE -----)

Иногда это работает (т. Е. Gpg4win может расшифровать полученный файл), но в других случаях происходит сбой (gpg4win не может расшифровать). Я стараюсь делать это одинаково каждый раз, следя за тем, чтобы не было пробелов и т. Д. Но это работает только иногда.

Как я могу заставить его работать с помощью Notepad ++?

Примечание: я могу сделать преобразование с помощью --enarmor, но я бы хотел сделать это с помощью Notepad ++. Тем более, что иногда я могу заставить его работать, поэтому я знаю, что это возможно, и, возможно, я пропускаю маленький кусочек.

1
Я думаю, что при таком подходе у вас возникают проблемы с символами, которые Notepad ++ понимает как конец строки. Я не думаю, что это жизнеспособно. harrymc 5 лет назад 1
У меня нет доступа к среде Windows, поэтому я не могу проверить gpg4win или Notepad ++. Тем не менее, используя gpg, я убедился, что 1) gpg игнорирует пробел ** за исключением **, что `----- BEGIN PGP MESSAGE -----` должно заканчиваться символом новой строки и `----- END PGP СООБЩЕНИЕ ----- `должно начинаться с новой строки. 2) Вам не нужна строка комментария, но если она у вас есть, она должна заканчиваться символом новой строки. 3) Вам не нужна строка контрольной суммы, но если она у вас есть, ей должна предшествовать новая строка и она должна быть правильной контрольной суммой. James K Polk 5 лет назад 1
@ Джеймсе-к-Polk. Привет Джеймс, я мог заставить работать certutil и даже openssl (пришлось добавлять строки BEGIN / END вручную), но Notepad ++ не работает для кодирования. Это работает каждый раз, хотя для декодирования. get_going 5 лет назад 0

1 ответ на вопрос

1
harrymc

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

Это может привести к разрушению файла при преобразовании в Base64, поскольку Notepad ++ преобразует текст между концом строк, но может вызвать проблему с неправильной обработкой конца строк.

На самом деле, для меня довольно удивительно, что для некоторых файлов это работает правильно, и я могу легко понять, что для других это не так.

Я думаю, что вы действительно должны искать другое решение, чем Notepad ++ для преобразования в Base64.

После еще нескольких попыток я нашел что-то интересное. Если я расшифрую * файл * в кодировке Base64, я получу сообщение об ошибке (https://i.imgur.com/jcD4n1b.jpg). НО, если я скопирую содержимое файла прямо в блокнот gpg4win, это работает. get_going 5 лет назад 0
Вы нашли способ обойти проблему конца строки? Я не знаю gpg4win, поэтому не могу объяснить, почему он работает. harrymc 5 лет назад 0
Нет, я не Я только что описал то, что наблюдал, т.е. если я открою закодированный файл Base64 и скопирую содержимое в блокнот gpg4win, он может расшифровать. Так что я знаю, что Notepad ++ делает что-то правильно. Но если я попрошу gpg4win дешифровать сам файл, произойдет сбой. Какую надежную альтернативу вы можете порекомендовать на Windows? get_going 5 лет назад 0
Microsoft # s [certutil] (https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil) может сделать это (и многое другое), см. [Этот ответ] (https: //stackoverflow.com/a/16946681/165358) для описания. Есть много других, таких как [этот] (http://www.proxoft.com/base64.aspx). harrymc 5 лет назад 2
Certutil работал. Я закодировал много зашифрованных двоичных файлов в base64, используя certutil, а gpgwin прекрасно их расшифровал. Работал каждый раз. Поэтому я удивлен. Notepadd ++ может прекрасно декодировать base64 в двоичный файл (работает каждый раз), но не может сделать обратное, даже если «Base64 Encode» прямо здесь. get_going 5 лет назад 0
Привет, harrymc, твой ответ дал мне альтернативу. Я пробовал openssl, и это тоже работает. Но мне было интересно, чтобы это работало с Notepad ++. Я полагаю, что это должно работать, потому что есть определенные варианты для этого (снимок экрана: https://i.imgur.com/DrWhIlR.jpg). Я подожду еще немного, чтобы узнать, можно ли заставить Notepad ++ работать, и я отмечу ваш ответ как Принятый. Благодарю. get_going 5 лет назад 0
Я согласен с этим ответом. Без тщательного изучения вы могли бы сказать, что открытие двоичного файла в текстовом редакторе и использование плагина, который ожидает ввод ascii, является ненадежным решением. Я бы использовал `gpg --enarmor`. `certutil` генерирует` ----- BEGIN CERTIFICATE ----- `, что помешает работе gpg. evpo 5 лет назад 1
@evpo. Привет evpo, я проверил ваш метод (--enarmor), и он самый лучший. Мне не нужно вручную удалять ----- BEGIN CERTIFICATE ----- и заменять на ----- BEGIN PGP MESSAGE -----. Я вижу, что вы автор или Encryptpad? Вы добавите Base64 / ascii в свою программу, пожалуйста? get_going 5 лет назад 0
да, многие люди просят об этом: https://github.com/evpo/EncryptPad/issues/9 https://groups.google.com/forum/#!topic/encryptpad/BXDQeGXmJeY evpo 5 лет назад 0

Похожие вопросы