我想使用PGP加密来加密CSV文件,我是通过PHP脚本生成的,然后通过电子邮件将该文件发送给客户端。客户端会给我加密密钥,我需要将其用于加密文件。
我在Google上搜索了有关PGP的内容,发现它是“很好的隐私”,我也找到了OpenPGP http://www.openpgp.org/和GnuPG http://www.gnupg.org/这两种PGP是什么?我应该使用哪一个?
另外,如何使用客户端提供的密钥在PHP中使用PGP加密文件?
我第一次听说过这个词,请问有人可以帮助您理解和用PHP实现。
因此,您要做的是加密到 OpenPGP 密钥。您的客户端使用哪种OpenPGP实施来解密数据对您而言并不重要。在PHP中,通常使用GnuPG,并且内置了接口。
使用GnuPG接口,它是可以为PHP安装的扩展。
首先,导入密钥,其中$keydata是ASCII铠装公钥:
$keydata
<?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),因为这些都容易受到碰撞攻击。
encrypt()
DEADBEEFDEADBEEF
DEADBEEF
这是一个由PHP手册中的用户添加的更全面的示例。