【发布时间】:2015-05-13 05:32:15
【问题描述】:
我有一个 php 后端,它以前自己生成 RSA 私钥/公钥对,用给定的密码加密私有部分。
现在我正在使用这个库:http://travistidwell.com/jsencrypt/ 在客户端生成密钥对。但是我没有找到如何使用这个库使用密码来加密私钥。所以我尝试使用这个:http://www.movable-type.co.uk/scripts/aes.html 但似乎我得到的密钥不起作用,我无法在我的 php 后端使用它进行加密/解密,并且不同的密钥管理应用程序无法识别密钥。
我做错了什么以及如何使用密码正确地加密原始 JSEncrypt 的私钥?
这是在 PHP 上生成密钥对的方式:
$config = array(
"digest_alg" => "sha256",
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
"encrypt_key" => true
);
$keypair = openssl_pkey_new($config);
$pkey_pass = '123';
openssl_pkey_export($keypair, $privKey, $pkey_pass, $config);
$fp = fopen($keys_folder . '/private.pem', 'w');
fwrite($fp, $privKey);
fclose($fp);
$pubKey = openssl_pkey_get_details($keypair);
$fp = fopen($keys_folder . '/public.pem', 'w');
fwrite($fp, $pubKey);
fclose($fp);
【问题讨论】:
-
我只是使用 JSEncrypt 生成一个密钥,并使用密码将其放入第二个脚本的演示文本区域,结果密钥无法被任何东西识别为私钥......我将更新关于 PHP 之前如何生成密钥对的问题。
标签: php encryption openssl private-key