PHP RSA2 簽名演算法

2021-09-11 12:40:19 字數 1968 閱讀 4307

什麼是rsa2?

rsa2是在原來sha1withrsa簽名演算法的基礎上,新增了支援sha256withrsa的簽名演算法。

該演算法在摘要演算法上比sha1withrsa有更強的安全能力。

sha1withrsa的簽名演算法會繼續提供支援,但為了您的應用安全,強烈建議使用sha256withrsa的簽名演算法。

開發平台演算法名稱

標準簽名演算法名稱

備註rsa2

sha256withrsa

(強烈推薦使用),強制要求rsa金鑰的長度至少為2048

rsasha1withrsa

對rsa金鑰的長度不限制,推薦使用2048位以上

那些公司在使用?

建立私鑰、公鑰

//生成原始 rsa私鑰檔案

openssl genrsa -out rsa_private_key.pem 1024

//將原始 rsa私鑰轉換為 pkcs8格式

openssl pkcs8 -topk8 -inform pem -in rsa_private_key.pem -outform pem -nocrypt -out private_key.pem

//生成rsa公鑰

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

//我們將私鑰rsa_private_key.pem用在伺服器端,公鑰發放給android跟ios等前端。

php-rsa2簽名驗證

class

rsa2

/*** 獲取公鑰

* @return bool|resource

*/private static

function

getpublickey()

/*** 建立簽名

* @param string $data 資料

* @return null|string

*/public function

createsign($data = ''

)

return openssl_sign(

$data,

$sign,

self::getprivatekey(),

openssl_algo_sha256

) ? base64_encode($sign) : null;

}/**

* 驗證簽名

* @param string $data 資料

* @param string $sign 簽名

* @return bool

*/public function

verifysign($data = '', $sign = ''

)

return (bool)openssl_verify(

$data,

base64_decode($sign),

self::getpublickey(),

openssl_algo_sha256);}

}複製**

php 呼叫

require_once "rsa2.php";

$rsa2 = new rsa2();

$data = 'my data'; //待簽名字串

$strsign = $rsa2->createsign($data); //生成簽名

var_dump($strsign);

$is_ok = $rsa2->verifysign($data, $sign); //驗證簽名

var_dump($is_ok);複製**

php rsa 加密,解密,簽名,驗籤詳解

php rsa 加密,解密,簽名,驗籤 由於對接第三方機構使用的是j a版本的rsa加解密方法,所有剛開始在網上搜到很多php版本的rsa加解密,但是對接j a大多都不適用。以下php版本是適用於對接j a介面,j a適用金鑰再php語言使用是需要新增 begin certificate end c...

BLS簽名演算法

關於bls簽名演算法,最原始的一篇 出自 lynn b short signatures from the weil pairing m advances in cryptology asiacrypt 2001.springer berlin heidelberg,2001.摘要 面向橢圓曲線和超...

RSA和RSA2簽名演算法區別

新建應用只支援rsa2簽名方式,目前已使用rsa簽名方式的應用仍然可以正常呼叫介面,詳情請見開放平台介面簽名方式公升級公告。乙個很好的說明文件可以參考what is a digital signature?中文翻譯可以參考 數字簽名是什麼?簡單來說,簽名主要包含兩個過程 摘要和非對稱加密,首先對需要...