Zırhlı OpenPGP veri, ikili ve ASCII için iki olası biçimleri vardır.
Ascii zırhlı dosyalar unix komutu kullanılarak da yapılabilir ki "----- ----- BEGIN PGP MESSAGE" bakarak tanımak kolaydır file
:
$ file encrypted
encrypted: PGP message
Yalnızca ASCII zırhlı şifrelenmiş dosyaları ile uğraşıyoruz @ ZZ_Coders cevabı tamamen iyi.
Veya ikili formatta - bu başka bir şey ortaya çıkarsa, bu bir OpenPGP mesaj değil. Bu (en azından ben sizin için bakmak olabilir sihirli hangi paketlerin bilmiyorum) tanımak kadar kolay değil, ama kolayca dosyasını test etmek gpg
komutunu kullanabilirsiniz:
$ 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
Şifreli değilse, yanıt bu gibi görünecektir:
$ gpg --list-only --list-packets something_else
gpg: no valid OpenPGP data found.
PHP, bir dosya OpenPGP şifreli olup olmadığını kontrol etmek için bu kodu kullanabilirsiniz:
if (strpos(`gpg --list-only --list-packets my_file.txt 2>&1`,
'encrypted data packet'))
echo "encrypted file";