日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

灵魂画手:漫画图解 SSH

發(fā)布時(shí)間:2024/4/11 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 灵魂画手:漫画图解 SSH 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

OpenSSL 本身是一個(gè)軟件庫,這個(gè)軟件被廣泛的應(yīng)用在系統(tǒng)服務(wù)器當(dāng)中,他的主要功能是在網(wǎng)絡(luò)通信的過程中,保證數(shù)據(jù)的一致性以及數(shù)據(jù)傳輸過程中的安全性。軟件本身是由C語言編寫,這使得他具備了跨平臺(tái)的特性,OpenSSL 主要包括如下三大功能:

  • 加解密: OpenSSL 具有豐富的加解密算法庫,支持不同的加解密方式以及存儲(chǔ)秘鑰的方式,如對(duì)稱加密,非對(duì)稱加密,信息摘要等內(nèi)容

  • SSL 協(xié)議: OpenSSL 實(shí)現(xiàn)了 SSL 協(xié)議的的 SSLv2 和 SSLv3,支持了其中絕大部分算法協(xié)議

  • 證書操作: OpenSSL 自身提供了一種文本數(shù)據(jù)庫,支持證書的管理功能,包括證書秘鑰的產(chǎn)生、請求產(chǎn)生、證書簽發(fā)、吊銷和驗(yàn)證等功能。

加解密的幾種形式

加解密的形式通常分為以下幾種:

  • 對(duì)稱加密算法

  • 非對(duì)稱加密算法

  • 不可逆加密算法

  • 下面我們挨個(gè)來看這些加密算法。

對(duì)稱算法

對(duì)稱算法是指信息的發(fā)送方和接收方使用同一份秘鑰去加解密數(shù)據(jù)。AES、DES 等都是常用的對(duì)稱加密算法。

對(duì)稱算法的優(yōu)點(diǎn)是加解密的速度快,適合對(duì)于大數(shù)據(jù)量加密。缺點(diǎn)是因?yàn)橹挥幸粋€(gè)秘鑰,所以秘鑰管理困難,只要暴露了,就很容易破解加密后的信息。

非對(duì)稱算法

非對(duì)稱算法是指信息的發(fā)送方和接收方分別持有一份秘鑰。一份公開發(fā)布,稱公鑰;一份私有,稱秘鑰。秘鑰可以導(dǎo)出對(duì)應(yīng)的公鑰。RSA、DSA 等是常用的非對(duì)稱加密算法。

一般情況下,信息發(fā)送者用公開密鑰去加密,而信息接收者則用私用密鑰去解密。公鑰機(jī)制靈活,但加密和解密速度卻比對(duì)稱密鑰加密慢得多。不同的使用場景下,也會(huì)衍生出其他的使用方法,比如私鑰加密,公鑰解密。

RSA 加解密算法

RSA 是一個(gè)流行的非對(duì)稱加密算法, 生成公私鑰內(nèi)容如下:

# 生成秘鑰 OpenSSL genrsa -out test.key 1024 # 從秘鑰中導(dǎo)出公鑰 OpenSSL rsa -in test.key -pubout -out test_pub.key # 公鑰加密文件 echo "test" > hello OpenSSL rsautl -encrypt -in hello -inkey test_pub.key -pubin -out hello.en # 私鑰解密文件 OpenSSL rsautl -decrypt -in hello.en -inkey test.key -out hello.de

不可逆加密算法

不可逆加密算法主要用于校驗(yàn)文件的一致性,摘要算法就是其中一種。常用的摘要算法有 MD5。

摘要算法

摘要算法用來把任何長度的明文以一定規(guī)則變成固定長度的一串字符。在做文件一致性校驗(yàn)的時(shí)候,我們通常都是先使用摘要算法,獲得固定長度的一串字符,然后對(duì)這串字符進(jìn)行簽名。接收者接收到文件后,也會(huì)執(zhí)行一遍摘要算法后再簽名。前后數(shù)據(jù)一致,則表示文件在傳輸過程沒有被竄改。

base64

特別需要注意的是,base64 不是加密算法,它是編碼方式。 它可以方便傳輸過程 ASCII 碼和二進(jìn)制碼之間的轉(zhuǎn)換。類似于圖片或者一些文本協(xié)議,在傳輸過程中通常可以使用 base64 轉(zhuǎn)換成二進(jìn)制碼進(jìn)程傳輸。

SSH 加密流程

  • 客戶端發(fā)送自己的密鑰 ID 給服務(wù)器端

  • 服務(wù)器在自己的 authorized_keys 文件中查找是否存在此 ID 的公鑰

  • 如果有,則服務(wù)器生成一個(gè)隨機(jī)數(shù),用當(dāng)前 ID 的公鑰加密

  • 服務(wù)器將加密后的隨機(jī)數(shù)發(fā)給客戶端

  • 客戶端用私鑰解密該隨機(jī)數(shù),然后在本地為隨機(jī)數(shù)做 MD5 加密

  • 客戶端將該 MD5 哈希發(fā)給服務(wù)器端

  • 服務(wù)器端為一開始自己生成的隨機(jī)數(shù)也做一個(gè) MD5 哈希,然后用通訊通道“公共的密鑰”將該哈希加密,再跟客戶端發(fā)來的內(nèi)容進(jìn)行對(duì)比。如果雙方內(nèi)容一致,則通過驗(yàn)證,開放訪問權(quán)限給客戶端

深入了解 OpenSSL 后,其對(duì)密碼學(xué)技術(shù)的功能支持會(huì)讓你激動(dòng)不已,如果有興趣可以更加深入地了解其中的內(nèi)容以及試驗(yàn)不同加密方式在不同場景中的使用。放個(gè)小預(yù)告: 后續(xù)還會(huì)推出一篇用 pyo3 來給 python 編寫 rsa 正反向加解密模塊的文章。

總結(jié)

以上是生活随笔為你收集整理的灵魂画手:漫画图解 SSH的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。