我在PHP這個測試代碼:PHP openssl加密解密錯誤?無效的公鑰/私鑰?
function genPGP() {
// Create the keypair
$res=openssl_pkey_new();
// Get private key
openssl_pkey_export($res, $prK, bin2hex(mcrypt_create_iv(100, MCRYPT_DEV_URANDOM)));
// Get public key
$puK = openssl_pkey_get_public($prK);
return array($prK,$puK);
}
function prKeyDecrypt($data,$key){
if (openssl_private_decrypt($data, $r, $key)) {
return $r;
}
}
$keys = genPGP();
$prK = $keys[0];
$puK = $keys[1];
$data = 'abc123';
openssl_public_encrypt($data,$encrypted,$puK);
echo prKeyDecrypt($encrypted,$prK);
我得到兩個錯誤,他們都相似,它們分別是:
Warning: openssl_public_encrypt(): key parameter is not a valid public key in test2.php on line 23
Warning: openssl_private_decrypt(): key parameter is not a valid private key in test2.php on line 14
我不知道什麼是「有效......關鍵「。有沒有不同的方式我應該得到鑰匙?根據手冊和我讀過的內容,這看起來很準確。
只是注意:你的代碼沒有任何關係PGP 。 –
感謝您的澄清。它也不是真正的「安全套接字層」。我一直把公鑰/私鑰加密作爲PGP。這基本上是PGP(特別是它的實現方式),我認爲,它的管理方式不同,不使用相同的驗證/信任系統(根據[本頁](http://security.stackexchange.com/questions/) 39765 /公共密鑰-上的OpenSSL VS-PGP))。我希望公鑰/私鑰密碼術有一個更簡單/更簡單的術語。 – JVE999