本文介绍了gnupg get_key在php中失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将gnupg用于php中的数字签名文件.以前工作正常.突然我收到此错误:

I am using gnupg for digital sign file in php. It was working fine before. Suddenly I am getting this error:

putenv("GNUPGHOME=/tmp");
$publicKey = file_get_contents("./media/public.key");

$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
$info = $gpg->import($publicKey);
$gpg->addsignkey($info['fingerprint'], DIGITAL_FILE_PASS);
$signed = $gpg->sign($data_to_sign);

可能是什么原因?

信息:

$info变量如下所示:

Array
(
[imported] => 0
[unchanged] => 2
[newuserids] => 0
[newsubkeys] => 0
[secretimported] => 0
[secretunchanged] => 0
[newsignatures] => 0
[skippedkeys] => 0
[fingerprint] => 622FC43AB6E1FC175C08E9C0048EAEBF6E607FA3
)

公钥:

-----开始PGP公钥块-----版本:GnuPG v1

-----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1

mQENBFXvNq0BCADAgEoJ9yHbgJp2h86eUqwqP8s4bKa4nFodx4dmUL3dJfrOhibPjiaG9eDyzyT3 + avQVc4 + Z3knYBxanFx1lchDS3EnjLwvfShbtU2X0oiuqoYIM76B03pCNpAiNsICVtZCYUBPe8Xjl8BNquK1RRdzrQRm29t9qa6TvCMIdc3rl0hOVHeXIgVzyYjE2Je9ICI2MRE7XK76GrdQ9N1nvoTOf6K3QA + wSQjOY4FUk95/tLUXiGssSQKqkczro4l7PEBCcX99QvY + BBTV4ykJ4lg6cdQabFXSeNfPYb56v62J0S8VswS9AofwkQGt1TplcFvpoziQ1ecCj2DGYBD6rvzRABEBAAG0KEJoYXNrZXIgUmVkZHkgPGJiaGFza2VyLnJlZGR5QHBuYi5jby5pbj6JAT4EEwECACgFAlXvNq0CGwMFCQlmAYAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEASOrr9uYH + jgmMIAI9Sg8KlxbschHKIvndQzfQ/TZyc4LpKRMgJsxw8utluq1ksbnHsmvF4rdgZ2hfnrAxN3lduvt6lddqi9 + LLQD8pWMqHBb7KmroKND8g7yVSc + ABTBsXzCI1JDBfy + B55lK0lCr +X7dgO5tQmqp5036dGU3PJlYrjiODBLoiOBgRo1VGTnb942a8DuLt + 1EMKDp6swtpAv30SfgA727fnt8DNZRHvkAszBru/TssrU0SjsAhDTRl4vVrUijJlIej0Kp6SsDSRPoIfoBU/HXTNPTRmKxUPX2nyBYmoyW3DV0j1Qr5eTNOQZmAqCiHR2rvTvSxsN1KnYV1dXlavunGUIm5AQ0EVe82rQEIAPqcUwWtCDKwuadXC0a/f5zFVVgQKaSTe8WSD6ErR1Hg8BWHDIJjTIsS0PnoEJTnq72gj/H35tTO4p1NR/JsoemRq0bmyituuNAAuJPDBpMb0HirB/0Q19E4u + utakZEzVd2jOZqfhLUxplGbScTKN4DLfZsWPfU/mSR62S/510JwmzpVFXzbyA82RdD6OsCeExMwNifLUjkARReiFp9tFIUGMI5HqIgOOE3qeXsmrWGp5pq4BR5umOC6J6XjCi1LVUj7uarlygntBJprKzVbUIPiL3d9/nLc4HoYw0vphIvgoEDQO5It5Ydvo6gxHwdtd + VUi7KZQJi88sUda7n + 5cAEQEAAYkBJQQYAQIADwUCVe82rQIbDAUJCWYBgAAKCRAEjq6/bmB/oyOCB/4gV4VXGCYimUqWMw0/PTFQwECyhlzyhDrGcppT4xj8U3nOo4h9fMdNQ6NGdlG6ej1rq5/pMXR3z1/6I5s +cnEY7L0LiNlKksT4JJ26ziqFGUhBmlCEnivaHxSkuG0nSylXQDlOnh/njzMb/V9PrAlu0a3Qxc10KokowxKO4QipA5cf3jEjjAwlL + pnW6DHqbO54/amkqKtqNRpfZD9d0fpZKtLCcCuqAX3Pd6LblEcTFLaD8DBRK6Vjmfm0UXH0aaae8TPFaX4GpI5OdE0B2IeslOqolzDgbJ/Jd0UMs2lpmX3YE5/96I4XpSoM7bWGS + 2DFeOmeImgiYyALKlS7N7mQENBFZTbLABCACj + EWqmkpfmsPOkoTnEM/HuKNIrGXm4ad + v6HuLkh3/QOV7hAJcPDMGtp4EMn1UQ1v3NW1WCYlKg7R + 1COaS5O/TaW6QTmfJzrfK/XtZJOgtyHScJWUOVT06VfXPgWWQdXgOJ8NZbD632O2uVv4oaoMiniURI060GK2gbI915lim17w1jlHiHa3edNQeF4LwCPNeJwFLgEz3pGIFsa3Y/UnO194AIKLOz16WxwOds/qypzQKleDXeuV92tdNb2UAj5KXV/jSeDMqnzRaCPG7WcM3vqJl0jUjZAB68nPtmlLfJhNrO50/mXGJTxcFJkUsiY5MC2qemQET4n2zJdR5ABEBAAG0KEJoYXNrZXIgUmVkZHkgPGJiaGFza2VyLnJlZGR5QHBuYi5jby5pbj6JAT4EEwECACgFAlZTbLACGwMFCQlmAYAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEP3CFUXaMfjxqaUH/1o3t89sStKatzNxocqW6g7HrrLn2QFjAW8ud0GHxsTenpgiC6paly3fwtAGD3O3XPIb8TUXR//ZLVrsXRwU7MLMfQNdjuUAkzAs30OqFyyPmi0v1OgK0r + e + oLoSrNVOFb +m0xOEPljnUTJJBpCHulcGqo8TRu/Bw0b1Tkishe6QbGZr8E691W28vYRYcuz8ftnLrZeFB2Ac6wSaeaT531BAT35qyFO8mhRjZYwlvkIDzFsji5zFygk0h3WQUmb4On9mXA1reVe2NqECLu7MKKZ1IVrN8ZreWD2273ZQoQUOtE + tKrv + IG5snREmK/f3ZtaPrOnPk6xwMfltKbSJIS5AQ0EVlNssAEIAKFa0tX5nHSFVfoQ7zy +/yYzp/yJX/xV+ KaU/qF7MsYnoDzw + 0w2cm/zYZ + 79xAZMgSlixXDmnHKLmNHsuY6QN6eztXfTog7/egDJ3raQYUUQrl4 + jW3SBbbPlvbgYoFPHNe/I3Ivf6WNXaXXBkWcK + AfDNX2ag58RIL2HvvgQ9l8z + wL + PBlZ3Joh7xLyESPVlE0Wxrf + Pcu4a5VXix + T3YgvEYsR0r0ZKbk7V78JrWvUZEjZw0o8t6kk8ibzFhqvI1YV0EOO0Ng425XsCjJA + sfjvFZ8zFusO6oZcfFDLOORQAmxOKK7dztUxCDWLIuwUrmjrr/u5uO38f5jAygEcAEQEAAYkBJQQYAQIADwUCVlNssAIbDAUJCWYBgAAKCRD9whVF2jH48eETCAChvI2tDT3E/wUCxHNSLYSHo4xFi9GKOy6MfhkyhDQtdkapwsrv + 4kun/U87qzQ3X/36K4rIpsoxGRSr6Q9gzE5 + 8HBQGIlz5Waverlamsh9iMxYfYzROyJURrJOpG9bXl3pqB20ZW5Ry1H4sa5uIlz5/LWnjIJqLo3E81 + HDO6Gwml3KujiY5NlrFEltX9bU9UoM/u6Os3dlglBQH/DZpqOPxL3CgKRb7cWCT3xeXIsFFWbreDFDvrndaOSFE3Z8bAYx17deJFf9EEBTRSTRPGS6WZ9Oc2IvsWqs8w/+ mq7EVxKZ3T8CWy8d8wxzDzxg9ZNwVCDzbqDCw5a1xG5T03= Zji/-----结束PGP公钥块-----

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Zji/-----END PGP PUBLIC KEY BLOCK-----

推荐答案

尽管您的代码正确,但是我不知道为什么file_get_contents在您的代码中无法正常工作,请尝试使用cURL:

Although your code is correct but I don't know why file_get_contents is not working correctly in your code, Kindly give it a try using cURL:

此函数是file_get_contents的替代方法.

This function is an alternative to file_get_contents.

function url_get_contents ($Url) {
    if (!function_exists('curl_init')){
        die('CURL is not installed!');
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $Url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

这篇关于gnupg get_key在php中失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-13 07:31