Существует два возможных формата данных OpenPGP: двоичный и ASCII-бронированный.
Файлы в кодировке Ascii легко распознать по строке «-----BEGIN PGP MESSAGE-----», что также можно сделать с помощью команды unix file
:
$ file encrypted
encrypted: PGP message
Ответ @ZZ_Coders полностью подходит, если вы имеете дело только с зашифрованными файлами в формате ascii.
Если он показывает что-то другое, это не сообщение OpenPGP или в двоичном формате. Это не так просто распознать (по крайней мере, я не знаю, какие волшебные пакеты вы могли бы искать), но вы можете легко использовать команду gpg
для проверки файла:
$ gpg --list-only --list-packets encrypted
:pubkey enc packet: version 3, algo 1, keyid DEAFBEEFDEADBEEF
data: [2048 bits]
:encrypted data packet:
length: 73
mdc_method: 2
Если он не зашифрован, ответ будет выглядеть так:
$ gpg --list-only --list-packets something_else
gpg: no valid OpenPGP data found.
В PHP вы можете использовать этот код, чтобы проверить, зашифрован ли файл OpenPGP:
if (strpos(`gpg --list-only --list-packets my_file.txt 2>&1`,
'encrypted data packet'))
echo "encrypted file";
person
Jens Erat
schedule
09.01.2013