在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

回到顶部