RSA(非對稱加密演算法)在介面中的使用

2021-10-19 12:25:58 字數 1477 閱讀 5261

1.簡介

rsa是一種非對稱簽名演算法。非對稱加密演算法需要兩個金鑰:簽名金鑰(私鑰)與驗籤金鑰(公鑰),它們的資料是不一樣,但需要一對使用。私鑰用於簽名,公鑰用於驗籤,

以此保證資料在互動過程中不被偽造和篡改。

3.生成私鑰:

openssl genrsa -out rsa_private_key.pem 4096
4.生成公鑰:

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
執行後生成rsa_private_key.pem和rsa_public_key.pem 兩個檔案,執行成功後如下圖:

5.rsa建立簽名

<?php 

$data = '填寫加密內容';

$private_key = file_get_contents('rsa_private_key.pem');

//獲取私鑰內容

$pkeyid = openssl_get_privatekey($private_key);

if ($pkeyid === false)

//對資料進行簽名 簽名還有md5,sha,rmd等

$rsa_res = openssl_sign($data, $signature, $pkeyid, openssl_algo_md5);

if($rsa_res)

6.rsa簽名驗籤

<?php 

$signature = 'base64編碼的簽名字串';

$rsa_public_key_filename = 'rsa_public_key.pem';

$public_key = trim(file_get_contents($rsa_public_key_filename));

//獲取公鑰鑰內容

$openssl_public_key = @openssl_get_publickey($public_key);

//對資料進行解密

$result = openssl_public_decrypt(base64_decode($signature), $decrypted, $openssl_public_key,openssl_pkcs1_padding);

//釋放資源

@openssl_free_key($openssl_public_key);

echo $result === true ?'true':'false';

完畢

RSA 非對稱加密演算法

1.對稱加密 甲方選擇某一種加密規則,對資訊進行加密 乙方使用同一種規則,對資訊進行解密。非對稱加密 乙方生成兩把金鑰 公鑰和私鑰 公鑰是公開的,任何人都可以獲得,私鑰則是保密的。甲方獲取乙方的公鑰,然後用它對資訊加密。乙方得到加密後的資訊,用私鑰解密。2.尤拉定理 rsa演算法的核心 可以大大簡化...

非對稱加密演算法 RSA

1 非對稱加密過程 國內使用的是雙證書體系 即使用者同時擁有簽名證書 和加密證書 兩張證書。簽名證書 是使用者的身份驗證是和ca協商的結果 加密證書 是用來對資訊進行加密,是使用者和秘鑰管理系統生成 過程是生成公鑰和私鑰的過程,基於rsa演算法實現 過程是ca對使用者的身份進行簽名,目的是驗證a的身...

非對稱加密演算法 RSA

rsa加密演算法於1977年由美國麻省理工學院的ronal rivest,adi shamir和len adleman三位年輕教授提出,並以三人的姓氏rivest,shamir和adleman命名為rsa演算法。這三位科學家榮獲2002年度圖靈獎,以表彰他們在演算法方面的突出貢獻。該演算法利用了數論...