Определение зашифрованного файла PGP

Есть ли способ идентифицировать зашифрованный PGP файл на основе содержимого файла (например, как можно идентифицировать ZIP-файл по буквам «PK» в начале файла)? Есть ли какое-либо магическое число, связанное с файлами, зашифрованными PGP?

Мы получаем несколько файлов от клиента и не знаем, какие из них зашифрованы PGP. Мне нужно написать код Java, чтобы идентифицировать файлы PGP и автоматически их расшифровывать. Спасибо!


person Aman    schedule 04.04.2017    source источник
comment
Я так не думаю. Возможно, вам придется сделать это в обратном порядке, запустить тесты для других типов файлов и предположить, что он зашифрован, если он не соответствует ни одному из тестов другого формата.   -  person AntonH    schedule 04.04.2017
comment
Я не уверен, что вы можете выбрать определенные форматы контейнеров, которые могут идти вместе с магическим идентификатором, но одним из критериев проектирования для шифрованных выходов обычно является ... зашифрованный текст должен быть неотличим от случайных байтов ... так что, возможно, запустите расчет распределения по файлу и посмотреть, выглядит ли он как чистая случайность ...;) ... не скажу вам, был ли это pgp или другой набор шифров   -  person DarkSquirrel42    schedule 04.04.2017
comment
Ознакомьтесь со спецификацией формата сообщений OpenPGP (RFC 4880)   -  person Ebbe M. Pedersen    schedule 04.04.2017


Ответы (1)


Вы можете сделать это с помощью Библиотека OpenPGP для Java (коммерческий продукт). Вот небольшой пример:

PGPInspectLib inspect = new PGPInspectLib();
if (inspect.isPublicKeyEncrypted(dataFileName)) {
 // file is PGP encrypted
}

Отказ от ответственности: я работаю в DidiSoft

person Peter Kalef ' DidiSoft    schedule 04.04.2017
comment
DidSoft - платная библиотека, я искал какое-нибудь решение с открытым исходным кодом. Влияет ли эта проверка на производительность? - person Aman; 05.04.2017
comment
Я не думаю, что будут какие-либо значительные накладные расходы, но вы должны протестировать это для своего варианта использования. - person Peter Kalef ' DidiSoft; 05.04.2017