我想用PHP加密电子邮件。解密将手动进行(可能使用Kleopatra)。 我将这个Stack Overflow问题用作模板。
Encrypt files using PGP in PHP?
我还尝试了该站点的解密https://sela.io/pgp/(以及Kleopatra)。
这是我在实验中使用的代码来完成此操作:
<?php
putenv("GNUPGHOME=/tmp");
$keydata ='-----BEGIN PGP PUBLIC KEY BLOCK-----
*...KEY...*
-----END PGP PUBLIC KEY BLOCK-----
';
$gpg = new gnupg();
$info = $gpg -> import($keydata);
var_dump($info);
echo "<BR>";
$gpg -> addencryptkey('ECF2636C2F355D686D79A95429E17DD890756C67');
$enc = $gpg -> encrypt("just a test");
print_r($enc);
//phpinfo();
?>
这是输出:
array(9){[“” imported“] => int(0)[” unchan + ged“] => int(1)[” newuserids“] => int(0)[” newsubkeys“] => int(0)[“ secretimported”] => int(0)[“ secretunchanged”] => int(0)[“ newsignatures”] => int(0)[“ skippedkeys”] => int(0)[“指纹“] =>字符串(40)” ECF2636C2F355D686D79A95429E17DD890756C67“} ----- BEGIN PGP消息-----版本:GnuPG v1 hQEM * ...更多消息文本... * = AZjz ----- END PGP消息-----
此消息不会在Kleopatra或https://sela.io/pgp/处解密。
但是当我这样更改它时:
----- BEGIN PGP消息-----
hQEMA0IJmjQx0Q3UAQ ...更多消息文本... f8 = = AZjz
----- END PGP消息-----
它在Kleopatra中工作。
我哪里出错了?有没有办法将加密方法的输出更改为有效的格式?