PHP openssl_pkey_export OpenSSL 函数

  • 定义和用法

    openssl_pkey_export - 将一个密钥的可输出表示转换为字符串
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    openssl_pkey_export( mixed $key , string &$out [, string $passphrase [, array $configargs ]] )
    openssl_pkey_export() 将 key 当作 PEM 编码字符串导出并且将之保存到out (通过引用传递的)中。
    注意: 必须安装有效的 openssl.cnf 以保证此函数正确运行。
  • 参数

    参数 必需的 描述
    key 秘钥
    out 输出保存变量
    passphrase 密钥可以通过值为passphrase的密码来保护。
    configargs configargs 可以用来调整导出流程,通过指定或者覆盖openssl配置文件选项。参见 openssl_csr_new() 获取更多关于 configargs 的信息。
  • 返回值

    成功时返回 TRUE, 或者在失败时返回 FALSE。
  • 示例

    // Create the keypair
    $res=openssl_pkey_new();
    
    // Get private key
    openssl_pkey_export($res, $privkey, "PassPhrase number 1" );
    
    // Get public key
    $pubkey=openssl_pkey_get_details($res);
    $pubkey=$pubkey["key"];
    //var_dump($privkey);
    //var_dump($pubkey);
    
    // Create the keypair
    $res2=openssl_pkey_new();
    
    // Get private key
    openssl_pkey_export($res2, $privkey2, "This is a passPhrase *µà" );
    
    // Get public key
    $pubkey2=openssl_pkey_get_details($res2);
    $pubkey2=$pubkey2["key"];
    var_dump($privkey2);
    var_dump($pubkey2);
    
    $data = "Only I know the purple fox. Trala la !";
    
    openssl_seal($data, $sealed, $ekeys, array($pubkey, $pubkey2));
    
    var_dump("sealed");
    var_dump(base64_encode($sealed));
    var_dump(base64_encode($ekeys[0]));
    var_dump(base64_encode($ekeys[1]));
    
    // decrypt the data and store it in $open
    if (openssl_open($sealed, $open, $ekeys[1], openssl_pkey_get_private  ($privkey2  ,"This is a passPhrase *µà" ) ) ) {
            echo "here is the opened data: ", $open;
    } else {
            echo "failed to open data";
    }
    
    尝试一下
  • 相关页面

    openssl_get_md_methods() - 获取可用的摘要算法