2

我刚刚写了一个简单的 PHP 函数来生成公钥和私钥对。

在本地,它工作得很好。但在 Google App Engine 中,它不会产生任何密钥对。我检查 GAE 中是否存在所有必要的 PHP 函数。但是为什么这不会生成密钥对。在本地,我使用的是 PHP7.1 和 GAE PHP 版本 5.5.38。在 GAE 中也openssl启用了。有什么提示吗?当我的应用程序在 GAE 中时,我是否应该使用任何其他类似的方法来生成密钥对?

<?php

var_dump(function_exists("openssl_pkey_new"));
var_dump(function_exists("openssl_pkey_export"));
var_dump(function_exists("openssl_pkey_get_details"));


function generateKeyPair($config = [])
{
    $defaultConfig = array(
        "digest_alg" => "sha512",
        "private_key_bits" => 4096,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
    );
    $config = array_merge($defaultConfig, $config);
    $res = openssl_pkey_new($config);
    openssl_pkey_export($res, $privateKey);
    $publicKey = openssl_pkey_get_details($res);
    $publicKey = $publicKey["key"];
    return $key = [
        'private_key' => $privateKey,
        'public_key' => $publicKey
    ];
}

/**
 * Locally it works well. But in Google App Engine
 * 
 * Output: bool(true) bool(true) bool(true) array ('private_key' => NULL, 'public_key' => NULL)
 */
var_export(generateKeyPair());
4

0 回答 0