在PHP中使用PGP加密文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (33)

我想使用PGP加密来加密CSV文件,我通过PHP脚本生成,然后通过电子邮件将该文件发送给客户端。客户端会给我加密密钥,我需要用它来加密文件。

我搜索了PGP,发现它是非常好的隐私,我还发现OpenPGP和GnuPG 这两种类型的PGP是什么?我应该使用哪一个?

还有如何使用PGP在PHP中使用我的客户端提供的密钥加密文件?

我第一次听到这个词,任何人都可以帮助理解这一点,并在PHP中实现它。

提问于
用户回答回答于

问题1:关于PGP

  • PGP(Pretty Good Privacy)是赛门铁克公司的产品和商标(他们在几年前购买它)。
  • OpenPGP是PGP使用的标准。
  • GnuPG(Gnu Privacy Guard)是PGP的免费开源实现。

所以你想要做的是加密一个OpenPGP密钥。你的客户端用来解密数据的OpenPGP实现对你来说并不重要。使用PHP,通常使用GnuPG,并且有内置的接口。

问题2:在PHP中使用GnuPG

使用GnuPG接口,该接口是可以为PHP安装的扩展。

首先,导入密钥,$keydataASCII装甲公钥在哪里:

<?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;
?>

扫码关注云+社区