【发布时间】:2016-04-06 02:07:08
【问题描述】:
我正在使用 PHP 中的 GnuPG 类。我在导入有效公钥时没有任何问题,但如果我尝试导入像“test”这样的随机内容,显然不是公钥,我会收到错误 502 bad gateway。我在 PHP 文档中看到 gnupg_keyinfo 显示了介绍存储在密钥环中的名称的信息。我在互联网上搜索,但没有找到检查输入的公钥是否格式正确的方法。
我正在使用以下代码:
<?php
putenv('GNUPGHOME=/home/kevin/.gnupg');
$gpg = '/usr/bin/gpg';
$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
if(isset($_POST['2fa'])){
try {
$key = $_POST['new_pgp'];
$retVal = $gpg->import($key);
echo $retVal['imported'] . ' key(s) imported.';
} catch (Exception $e) {
die('ERROR: ' . $e->getMessage());
}
}
?>
<html>
<body>
<form action="pgp.php" method="post">
<textarea name="new_pgp"></textarea><br>
<input type="submit" name="2fa" value="Send">
</form>
</body>
</html>
【问题讨论】:
-
不,在我看来不一样。我正在使用 GnuPG 类,并阅读了以下文档:secure.php.net/manual/en/function.gnupg-import.php 如果导入过程失败,该方法将返回 FALSE,如果我输入正确的 pgp,我的表单可以正常工作,没有任何问题,但如果我输入了假的pgp 我的表单只是抛出 502 bad gateway,我想控制这种错误,但我不知道如何检查 pgp 是否是正确的 pgp @Oxi
-
听起来 gnupg_import() 可以正常工作,并且当提供无效密钥时,您的脚本只会运行严重破坏。最好显示一些代码。
-
我用我的代码@maxhb 更新了我的问题
-
PHP 是如何接口的?查看您的 Web 服务器的日志文件为什么您会收到错误的网关错误消息。
标签: php public-key-encryption gnupg privacy pgp