摘要:什么是是在原來(lái)簽名算法的基礎(chǔ)上,新增了支持的簽名算法。的簽名算法會(huì)繼續(xù)提供支持,但為了您的應(yīng)用安全,強(qiáng)烈建議使用的簽名算法。
什么是RSA2?
RSA2是在原來(lái)SHA1WithRSA簽名算法的基礎(chǔ)上,新增了支持SHA256WithRSA的簽名算法。
該算法在摘要算法上比SHA1WithRSA有更強(qiáng)的安全能力。
SHA1WithRSA的簽名算法會(huì)繼續(xù)提供支持,但為了您的應(yīng)用安全,強(qiáng)烈建議使用SHA256WithRSA的簽名算法。
開(kāi)發(fā)平臺(tái)算法名稱 | 標(biāo)準(zhǔn)簽名算法名稱 | 備注 |
---|---|---|
RSA2 | SHA256WithRSA | (強(qiáng)烈推薦使用),強(qiáng)制要求RSA密鑰的長(zhǎng)度至少為2048 |
RSA | SHA1WithRSA | 對(duì)RSA密鑰的長(zhǎng)度不限制,推薦使用2048位以上 |
那些公司在使用?
一些大型公司的開(kāi)發(fā)平臺(tái),比如支付寶、新浪微博。
創(chuàng)建私鑰、公鑰
//生成原始 RSA私鑰文件
openssl genrsa -out rsa_private_key.pem 1024
//將原始 RSA私鑰轉(zhuǎn)換為 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用在服務(wù)器端,公鑰發(fā)放給android跟ios等前端。
PHP-RSA2簽名驗(yàn)證
class Rsa2 { private static $PRIVATE_KEY = "rsa_private_key.pem 內(nèi)容"; private static $PUBLIC_KEY = "rsa_public_key.pem 內(nèi)容"; /** * 獲取私鑰 * @return bool|resource */ private static function getPrivateKey() { $privKey = self::$PRIVATE_KEY; return openssl_pkey_get_private($privKey); } /** * 獲取公鑰 * @return bool|resource */ private static function getPublicKey() { $publicKey = self::$PUBLIC_KEY; return openssl_pkey_get_public($publicKey); } /** * 創(chuàng)建簽名 * @param string $data 數(shù)據(jù) * @return null|string */ public function createSign($data = "") { if (!is_string($data)) { return null; } return openssl_sign( $data, $sign, self::getPrivateKey(), OPENSSL_ALGO_SHA256 ) ? base64_encode($sign) : null; } /** * 驗(yàn)證簽名 * @param string $data 數(shù)據(jù) * @param string $sign 簽名 * @return bool */ public function verifySign($data = "", $sign = "") { if (!is_string($sign) || !is_string($sign)) { return false; } return (bool)openssl_verify( $data, base64_decode($sign), self::getPublicKey(), OPENSSL_ALGO_SHA256 ); } }
PHP 調(diào)用
require_once "Rsa2.php"; $rsa2 = new Rsa2(); $data = "my data"; //待簽名字符串 $strSign = $rsa2->createSign($data); //生成簽名 var_dump($strSign); $is_ok = $rsa2->verifySign($data, $sign); //驗(yàn)證簽名 var_dump($is_ok);
相關(guān)推薦:
PHP 使用非對(duì)稱加密算法 (RSA)
一起來(lái)聊聊數(shù)據(jù)的加密技術(shù)
Thanks ~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/22964.html
時(shí)間:2017年4月13日星期四說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-1 數(shù)字簽名算法概述 數(shù)字簽名算法 簽名-安全性,抗否認(rèn)性 數(shù)字簽名:帶有密鑰(公鑰、私鑰)的消息摘要算法 驗(yàn)...
摘要:實(shí)際上這一篇和上一篇均可以看作是關(guān)于加解密的懶漢入門篇安全加強(qiáng)篇一的后續(xù),只不過(guò)側(cè)重點(diǎn)在于安全上。回到上篇結(jié)果提到的問(wèn)題,就是對(duì)稱加密的安全性要人命,非對(duì)稱加密的性能非常要人命。元首作為高智商罪犯,這種低級(jí)錯(cuò)誤是不可能犯的。 為什么標(biāo)題總是要帶上API安全關(guān)鍵字呢?因?yàn)槲蚁胛覙?lè)意。 實(shí)際上這一篇和上一篇均可以看作是《關(guān)于PHP加解密的懶漢入門篇(API安全加強(qiáng)篇一)》》)的后續(xù),只不過(guò)...
摘要:實(shí)際上這一篇和上一篇均可以看作是關(guān)于加解密的懶漢入門篇安全加強(qiáng)篇一的后續(xù),只不過(guò)側(cè)重點(diǎn)在于安全上。回到上篇結(jié)果提到的問(wèn)題,就是對(duì)稱加密的安全性要人命,非對(duì)稱加密的性能非常要人命。元首作為高智商罪犯,這種低級(jí)錯(cuò)誤是不可能犯的。 為什么標(biāo)題總是要帶上API安全關(guān)鍵字呢?因?yàn)槲蚁胛覙?lè)意。 實(shí)際上這一篇和上一篇均可以看作是《關(guān)于PHP加解密的懶漢入門篇(API安全加強(qiáng)篇一)》》)的后續(xù),只不過(guò)...
摘要:公開(kāi)密鑰加密的出現(xiàn)大大減輕了交換對(duì)稱密鑰的困難,公鑰可以公開(kāi)透過(guò)不安全可被竊聽(tīng)的渠道發(fā)送,用以加密明文。當(dāng)與配合使用,稱之為,與配合則稱為,以此類推。這步?jīng)]有簽名,服務(wù)端收到數(shù)據(jù)后不會(huì)發(fā)現(xiàn)被篡改。對(duì)于認(rèn)證機(jī)構(gòu),一旦私鑰外泄,將可能導(dǎo)致整未濟(jì),亨。小狐汔濟(jì),濡其尾,無(wú)攸利。——《易》六、密鑰管理當(dāng)不再擔(dān)心身份會(huì)被冒充、篡改之后,我們?cè)賮?lái)詳細(xì)談?wù)劸W(wǎng)絡(luò)通信中對(duì)于加密算法的密鑰管理。在密鑰被簽發(fā)后,...
摘要:原文地址支付支付步驟為獲取支付寶的配置信息。將得到的數(shù)據(jù)請(qǐng)求支付寶客戶端進(jìn)行支付。端將拼接好的字符串拿去請(qǐng)求支付寶客戶端即可調(diào)起支付寶進(jìn)行支付。向支付寶申請(qǐng)新訂單,獲取支付。成功請(qǐng)求回來(lái)后,就可以向支付寶發(fā)出一次支付請(qǐng)求。 支付寶在所有支付方式中最好開(kāi)發(fā)的了,因?yàn)槲臋n比較清晰,而且開(kāi)發(fā)起來(lái)也比較簡(jiǎn)單。因此,支付寶的坑是相對(duì)較少的。原文地址 APP支付 APP支付步驟為: 獲取支付寶的...
閱讀 2418·2021-08-18 10:21
閱讀 2528·2019-08-30 13:45
閱讀 2159·2019-08-30 13:16
閱讀 2121·2019-08-30 12:52
閱讀 1370·2019-08-30 11:20
閱讀 2630·2019-08-29 13:47
閱讀 1628·2019-08-29 11:22
閱讀 2766·2019-08-26 12:11