Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PhP中生成包含私钥和公钥的字符串?_Php - Fatal编程技术网

如何在PhP中生成包含私钥和公钥的字符串?

如何在PhP中生成包含私钥和公钥的字符串?,php,Php,我看到了这个代码: <?php class MyEncryption { public $pubkey = '...public key here...'; public $privkey = '...private key here...'; public function encrypt($data) { if (openssl_public_encrypt($data, $encrypted, $this->pubkey))

我看到了这个代码:

<?php
class MyEncryption
{

    public $pubkey = '...public key here...';
    public $privkey = '...private key here...';

    public function encrypt($data)
    {
        if (openssl_public_encrypt($data, $encrypted, $this->pubkey))
            $data = base64_encode($encrypted);
        else
            throw new Exception('Unable to encrypt data. Perhaps it is bigger than the key size?');

        return $data;
    }

    public function decrypt($data)
    {
        if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey))
            $data = $decrypted;
        else
            $data = '';

        return $data;
    }
}


?>

我得到的只是$privKey==false,密钥必须一起生成,因为公钥是可以加密信息的“非秘密”密钥,所以只有私钥才能解密。这是一个例子

如果openssl_pkey_new失败(它不会返回密钥本身,只返回可用于检索实际密钥的资源),请参阅手册页面的注释部分中的


不,密钥不应进行base64编码。这仅对方法中加密的数据执行。在类中执行此操作的原因可能是因为原始作者希望通过某种非二进制安全环境传输加密数据。

这是一个特定脚本还是您自己的作品?从哪里获得此代码?我从stackoverflow获得此代码。我在学习。我说我看到了一个密码。不,这不是我写的。我只是想用一个简单的私人和公共的。不需要任何复杂的东西。
$privKey = openssl_pkey_new();