對稱加密演算法是在加密和解密時使用同乙個金鑰。與對稱加密演算法不同,非對稱加密演算法需要兩個金鑰--公開金鑰(public key)和私有金鑰(private key)進行加密和解密。公鑰和金鑰是一對,如果公開金鑰對資料進行加密,只有對應私有金鑰才能解密;如果用私有金鑰對資料加密,那麼只有對應公有金鑰才能解密。
常用演算法:rsa、elgamal、揹包演算法、rabin、ecc等。rsa是最有影響力的公鑰加密演算法之一。
生成公金鑰:
#生成私鑰
openssl genrsa -out rsa_private_key.pem 1024
#生成公鑰
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
在php中用rsa進行加密解密如下:
<?php$private_key_file = "rsa_private_key.pem";
$public_key_file = "rsa_public_key.pem";
$data = "hello world";
if (file_exists($private_key_file
))
else
if (file_exists($public_key_file
))
else
$encrypted = $decrypted = "";
openssl_private_encrypt(
$data, $encrypted, $private_key); //
使用私鑰加密資料
openssl_public_decrypt($encrypted, $decrypted, $public_key
);
echo
$decrypted
;
$encrypted = $decrypted = "";
openssl_public_decrypt(
$data, $encrypted, $public_key
); openssl_private_encrypt(
$data, $decrypted, $private_key); //
使用私鑰進行加密
echo
$decrypted;
php的RSA非對稱加密
php服務端與客戶端互動 提供開放api時,通常需要對敏感的部分api資料傳輸進行資料加密,這時候rsa非對稱加密就能派上用處了,下面通過乙個例子來說明如何用php來實現資料的加密解密 加密解密的第一步是生成公鑰 私鑰對,私鑰加密的內容能通過公鑰解密 反過來亦可以 通過私鑰能生成對應的公鑰,因此我們...
RSA非對稱加密
現實網路中,web應用的開發少不了需要對敏感資訊來進行加密,但是加密又不能草草了事,過於簡單。一旦被鑽了空子,就成了事故。比如密碼。之前用到了非對稱加密沒做記錄,這次又用到了,所以記錄下來!rsa是目前最有影響力的公鑰加密演算法,該演算法基於乙個十分簡單的數論事實 將兩個大素數相乘十分容易,但那時想...
RSA非對稱加密
對稱加密 演算法 在加密和解密時使用的是同乙個秘鑰 而 非對稱加密演算法 需要兩個 金鑰 來進行加密和解密,這兩個秘鑰是 公開金鑰 public key,簡稱公鑰 和私有金鑰 private key,簡稱私鑰 與對稱加密 演算法 不同,非對稱加密演算法 需要兩個 金鑰 公開金鑰 publickey ...