在PHP中使用PGP加密文件?
我想使用PGP加密来加密CSV文件,我是通过PHP脚本生成的,然后通过电子邮件将该文件发送给客户端。客户端会给我加密密钥,我需要将其用于加密文件。
我在Google上搜索了有关PGP的内容,发现它是“很好的隐私”,我也找到了OpenPGP
http://www.openpgp.org/和GnuPG
http://www.gnupg.org/这两种PGP是什么?我应该使用哪一个?
另外,如何使用客户端提供的密钥在PHP中使用PGP加密文件?
我第一次听说过这个词,请问有人可以帮助您理解和用PHP实现。
回答:
问题1:关于PGP
- (Pretty Good Privacy)是Symantec Corporation(几年前购买的)的产品和商标。
- 是PGP使用的标准。
- (Gnu隐私卫士)是PGP的免费开源实现。
因此,您要做的是加密到 OpenPGP
密钥。您的客户端使用哪种OpenPGP实施来解密数据对您而言并不重要。在PHP中,通常使用GnuPG,并且内置了接口。
问题2:在PHP中使用GnuPG
使用GnuPG接口,它是可以为PHP安装的扩展。
首先,导入密钥,其中$keydata
是ASCII铠装公钥:
<?php$gpg = new gnupg();
$info = $gpg -> import($keydata);
print_r($info);
?>
然后使用此密钥来加密数据,这次使用客户端密钥的指纹:
<?php $gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("just a test");
echo $enc;
?>
如果要加密文件,请阅读并将其传递给encrypt()
。DEADBEEFDEADBEEF
引用密钥时,请确保至少使用长密钥ID(例如)和更好的指纹(如示例中所示);与从不使用短键标识(DEADBEEF
),因为这些都容易受到碰撞攻击。
这是一个由PHP手册中的用户添加的更全面的示例。
以上是 在PHP中使用PGP加密文件? 的全部内容, 来源链接: utcz.com/qa/409336.html