【问题标题】:Encrypt large data using public key .ASC in php在 php 中使用公钥 .ASC 加密大数据
【发布时间】:2014-01-21 18:25:57
【问题描述】:

我有一个扩展名为 .asc 的公钥,我需要使用它来加密数据并将其以纯文本文件的形式发送。我正在尝试在使用 php 的 Windows 机器中完成此操作。有任何想法吗? 谢谢,

【问题讨论】:

  • PECL中有一个gnupg扩展php.net/manual/en/book.gnupg.php
  • rocket-hazmat:我在 linux 中配置它没有任何问题。 Windows 真是太痛苦了……我希望找到我可以在 INI 文件中引用的 dll,但我没有看到任何内容

标签: php public-key-encryption pgp


【解决方案1】:

确保你installed the gnupg extension for PHP

$gpg = new gnupg();
$publicData = file_get_contents('public.asc');
$publicKey = $gpg->import($publicData);
$gpg->addencryptkey($publicKey['fingerprint']);
echo $gpg->encrypt('Data to encrypt');

不要加密常量,而是替换为文件内容,并将加密的消息存储在您想要的任何位置。

【讨论】:

  • gnupg 扩展在 Windows 中并不是那么简单。我尝试使用 PECL 安装它,但收到错误“错误:DSP gnupg.dsp 不存在”。我可能必须从源代码编译它...
  • 调用二进制文件可能会更开心。确保将公钥放入 Web 服务器 GnuPG 目录,然后调用 gpg.exe -r DEADBEEF -d file-to-encrypt >encrypted-file.asc。您可能必须使用 GnuPG 的完整路径。或者干脆使用 Linux 机器作为 Web 服务器...
  • 不错的主意。谢谢 Jens Erat。
猜你喜欢
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 2011-01-28
  • 2012-02-03
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
相关资源
最近更新 更多