php中rsa生成公私鑰和加解密

2022-07-20 04:21:08 字數 1678 閱讀 5183

注意:php使用rsa時需要開啟openssl擴充套件

//建立公私鑰

$res = openssl_pkey_new();

//獲取私鑰

openssl_pkey_export($res, $private_key);

//獲取公鑰

$public_key = openssl_pkey_get_details($res)['key'];

//組合rsa

$rsa = [

'public_key' => $public_key,

'private_key' => $private_key,

];echo "";

var_dump($rsa);

exit;

結果:

這裡把上面獲取的公私鑰分別儲存到變數 $public_key,$private_key

/**

* 公鑰加密

*/$data = 'rsa加密解密';

//解析公鑰

$res = openssl_pkey_get_public($public_key);

//使用公鑰加密資料

openssl_public_encrypt($data, $crypted, $res);

echo "";

var_dump($crypted);

exit;

加密後結果:

* 私鑰解密

*///解析私鑰

$res = openssl_pkey_get_private($private_key);

//使用私鑰解密資料

openssl_private_decrypt($crypted, $decrypted, $res);

echo "";

var_dump($decrypted);

exit;

解密後結果:

/**

* 私鑰加密

*/$data = 'rsa加密解密';

//解析私鑰

$res = openssl_pkey_get_private($private_key);

//使用私鑰加密

openssl_private_encrypt($data, $crypted, $res);

/** * 公鑰解密

*///解析公鑰

$res = openssl_pkey_get_public($public_key);

openssl_public_decrypt($data, $decrypted, $res);

echo "";

var_dump($decrypted);

exit;

結果和公鑰加密,私鑰解密差不多,這裡就不截圖了

私鑰加密,公鑰解密: 用於簽名

公鑰加密,私鑰解密: 用於加解密

關於使用場景這篇文章說的比較好:

RSA公私鑰生成

1 生成私鑰 openssl genrsa out rsa private key.pem 1024 2 根據私鑰生成與之配對的公鑰 openssl rsa in rsa private key.pem pubout out rsa public key.pem 3 將第1步生成的私鑰轉換成pkcs...

使用OpenSSL生成RSA公私鑰

1.openssl genrsa out rsa private key 2048.pem 2048 生成rsa私,x509編碼,2048位 2.openssl pkcs8 in rsa private key 2048.pem out rsa private key 2048 pkcs8.pem ...

openssl公私鑰生成

1 雙擊啟動bin openssl.exe 2 手動輸入命令 或者 複製一行命令,右擊標題欄 編輯 貼上 3 enter完成輸入,生成對應公私鑰檔案 生成步驟 1 生成private key.pem openssl genrsa out private key.pem 1024 2 生成pkcs8 ...