gnupg_import

(PECL gnupg >= 0.3)

gnupg_import导入密钥

描述

gnupg_import(resource $identifier, string $keydata): array|false

导入密钥 keydata 并返回一个包含导入过程信息的数组。

参数

identifier

gnupg 标识符,来自对 gnupg_init()gnupg 的调用。

keydata

正在导入的数据密钥。

返回值

成功时,此函数返回一个关于导入过程的信息数组。失败时,此函数返回 false

示例

示例 #1 过程式 gnupg_import() 示例

<?php
$res
= gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

示例 #2 OO gnupg_import() 示例

<?php
$gpg
= new gnupg();
$info = $gpg->import($keydata);
print_r($info);
?>

添加笔记

用户贡献的笔记 3 notes

8
gst
3 年前
如果有人试图从文件导入密钥并最终得到返回值“false”,并且没有任何错误或警告。

gpg 模块仍然与命令行/bash 调用的 gpg 一样工作。

如果您是在 apache 下运行脚本,gpg 正在尝试访问其 ~/.gnupg,该目录可能不存在于 apache 用户 www-data 或等效用户。

# su www-data -s /bin/bash -c "gpg"
gpg:致命错误:无法创建目录“/var/www/.gnupg”:权限被拒绝

您只需创建该文件夹并将它的所有者改为 apache 用户 www-data 或等效用户。

# mkdir /var/www/.gnupg
# chown www-data:www-data /var/www/.gnupg
4
php at cdauth dot de
16 年前
返回值数组包含以下值
(
[imported] => (int),
[unchanged] => (int),
[newuserids] => (int),
[newsubkeys] => (int),
[secretimported] => (int),
[secretunchanged] => (int),
[newsignatures] => (int),
[skippedkeys] => (int),
[fingerprint] => (string)
)

当传递无效内容时,所有值,甚至是 skippedkeys,都为 0。 此时 fingerprint 值不存在。
-1
dimitri at digirati dot com dot br
15 年前
我建议密钥可以在 shell 命令行中生成,然后使用以下命令组导出密钥。

gpg --export -a "User Name" > public.key
gpg --export-secret-key -a "User Name" > private.key

然后在导入和使用它进行加密和解密时使用它。

<?php

$GnuPG
= new gnupg();

$PublicData = file_get_contents('public.key');
$PrivateData = file_get_contents('public.key');

$PublicKey = $GnuPG->import($PublicData);
$PrivateKey = $GnuPG->import($PrivateData);

echo
'Public Key : ',$PublicKey['fingerprint'],' & Private Key : ',$PrivateKey['fingerprint'];

?>
To Top