linux創(chuàng)建公鑰私鑰
生成私鑰文件: openssl genrsa-outrsa_private_key.pem1024? ? //512 1024 2048
利用私鑰,生成公鑰:openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
php創(chuàng)建公鑰私鑰
$config= array(
??//"digest_alg" => "sha512",
??"private_key_bits"=> 512,?????????? //字節(jié)數(shù)? 512 1024 2048? 4096 等
??"private_key_type"=> OPENSSL_KEYTYPE_RSA,?? //加密類型
);
//1.創(chuàng)建公鑰和私鑰? 返回資源
$res= openssl_pkey_new($config);
//從得到的資源中獲取私鑰? 并把私鑰賦給$privKey
openssl_pkey_export($res, $privKey);
//從得到的資源中獲取私鑰? 并把私鑰賦給$pubKey
$pubKey= openssl_pkey_get_details($res);
$pubKey= $pubKey["key"];
var_dump(array('privKey'=>$privKey,'pubKey'=>$pubKey));
die;
psa加密解密
加密解密數(shù)據(jù) 要加密的數(shù)據(jù)
$data= '123123123';? ? ? ? ? ??
//對(duì)$data進(jìn)行加密 要加密的數(shù)據(jù)字符串 得到加密后的數(shù)據(jù) 加密所需要的公鑰
openssl_public_encrypt($data, $encrypted, $pubKey);//需要加密的數(shù)據(jù),加密后的數(shù)據(jù),加密秘鑰
echo base64_encode($encrypted);
//對(duì)加密后的數(shù)據(jù)進(jìn)行解密 解密的數(shù)據(jù) 得到解密后的數(shù)據(jù) 解密所需要的私鑰
$decrypted= base64_decode($encrypted);
openssl_private_decrypt($encrypted, $decrypted, $privKey);//需要解密的數(shù)據(jù),解密后的數(shù)據(jù),解密秘鑰
echo $decrypted;?
備注:
openssl_private_encrypt? ? //私鑰加密
openssl_public_decrypt? ? //公鑰解密
openssl_public_encrypt? ? //公鑰加密
openssl_private_decrypt? ? //私鑰解密
openssl_pkey_get_public //檢查公鑰是否可用
openssl_pkey_get_private //檢查私鑰是否可用
生成公鑰私鑰網(wǎng)址?http://web.chacuo.net/netrsakeypair