關(guān)于web開發(fā)安全算法之非對(duì)稱加密算法

非對(duì)稱加密算法

非對(duì)稱加密算法又稱為公開密鑰加密算法,它需要兩個(gè)密鑰,一個(gè)稱為公開密鑰 (public key), 即公鑰;另一 個(gè)稱為私有密鑰 (private key), 即私鑰。公鑰與私鑰需要配對(duì)使用,如- 用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私鑰才能進(jìn)行解密,而如果使用私鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公鑰才能進(jìn)行解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法稱為非對(duì)稱加密算法。

非對(duì)稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過(guò)程是

甲方生成一 對(duì)密鑰并將其中的一把作為公鑰向其他人公開,得到該公鑰的乙方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給甲方,甲方再使用自己保存的另一把專用密鑰(即私鑰)對(duì)加密后的信息進(jìn)行解密。

非對(duì)稱加密算法的特點(diǎn):對(duì)稱加密算法中只有一種密鑰,并且是非公開的,如果要解密就得讓對(duì)方知道密鑰,所以保證其安全性就是保證密鑰的安全,而一旦密鑰在傳輸過(guò)程中泄露,加密信息就不再安全。

非對(duì)稱加密算法能夠保證,即使是在獲知公鑰、加密算法和加密算法源代碼的情況下,也尤法獲得公鑰對(duì)應(yīng)的私鑰,因此也無(wú)法對(duì)公鑰加密的密文進(jìn)行解密。

當(dāng)前使用最為廣泛的非對(duì)稱加密算法非RSA莫屬。

1.RSA算法

RSA非對(duì)稱加密算法是在1977年由RonRivest、AdiShamirh和LenAdleman開發(fā)的,RSA取名來(lái)自他們?nèi)叩拿帧SA是目前最有影響力的非對(duì)稱加密算法,它能夠抵抗到目前為止(2016年)已知的所有密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。RSA算法基于一個(gè)十分簡(jiǎn)單的數(shù)論巾實(shí):將兩個(gè)大素?cái)?shù)相乘十分容易,但反過(guò)來(lái)想要對(duì)其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。


首先初始化KeyPairGenerator, 并生成KeyPair, 得到KeyPair后,便可以通過(guò)getPublic與getPrivate分別取得公鑰和私鑰。為了方便保存(比如將相應(yīng)的密鑰存入數(shù)據(jù)庫(kù)),可以使用Base64編碼將其轉(zhuǎn)換為String類型的打印字符。


轉(zhuǎn)換之前,先對(duì)字符串進(jìn)行Base64解碼,公鑰需要先轉(zhuǎn)換成X509EncodedKeySpec對(duì)象,然后通過(guò)KeyFactory生成PublicKey對(duì)象,而私鑰需要先轉(zhuǎn)換成PKCS8EncodedKeySpec對(duì)象,丙通過(guò)KeyFactory生成PrivateKey對(duì)象。

待續(xù)。。

摘自:
《大型分布式網(wǎng)站架構(gòu)設(shè)計(jì)與實(shí)踐》 閱讀筆記

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名:于川皓 學(xué)號(hào):16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/RS...
    道無(wú)涯_cc76閱讀 2,797評(píng)論 0 1
  • 概述 之前一直對(duì)加密相關(guān)的算法知之甚少,只知道類似DES、RSA等加密算法能對(duì)數(shù)據(jù)傳輸進(jìn)行加密,且各種加密算法各有...
    Henryzhu閱讀 3,208評(píng)論 0 14
  • 數(shù)字證書原理 - 無(wú)恙 - 博客園 文中首先解釋了加密解密的一些基礎(chǔ)知識(shí)和概念,然后通過(guò)一個(gè)加密通信過(guò)程的例子說(shuō)明...
    拉肚閱讀 1,765評(píng)論 0 3
  • 高級(jí) 雙保險(xiǎn) 公鑰,私鑰 DH 密鑰交換算法(是非對(duì)稱加密的起源) RSA 基于因子分解(應(yīng)用范圍最廣,既能用于數(shù)...
    _愛(ài)笑的eyes閱讀 5,119評(píng)論 0 1
  • 一、什么是對(duì)稱加密技術(shù)? 對(duì)稱加密采用了對(duì)稱密碼編碼技術(shù),它的特點(diǎn)是文件加密和解密使用相同的密鑰。信息接收雙方都需...
    Djbfifjd閱讀 2,334評(píng)論 2 8

友情鏈接更多精彩內(nèi)容