非對稱加密以及在Python的使用

2021-08-05 22:26:59 字數 996 閱讀 9486

加密技術分為兩類:

對稱加密 如 aes非對稱加密 如 rsa

關於加密的文章我以後會專門寫一篇文章,現在讓我們簡單的看看rsa的基本概念及在python中如何使用。

概念a 和 b 要把他們的通訊內容加密, 如果a/b使用相同的加密解密key,那這就是 對稱加密。

對稱加密最大的問題就是a和b之間的加密/解密key必須是唯一的。也就是如果a和c 要加密通訊,同時還不想讓c知道a/b之間的通訊內容。那麼a/c之間的加密/解密用的key就不能和a/b之間的一樣。

鏈結一旦便多,這種機制將很難管理大量的key。

非對稱加密 就是在此環境下誕生的。非對稱加密有公鑰和私鑰。公鑰隨意公開,私鑰自己私密儲存。

比如 a 把公鑰發給b, c。 當b,c與a通訊時,先把約定好的見面訊號用公鑰加密,a收到後,用私鑰解密,當解密後的資料就是提前約定好的見面訊號的話,a 就認為b,c是受信鏈結。

如果此時d也給a傳送資訊,但卻沒有正確的公鑰。a就無法得到正確的見面訊號,就不會受理d的請求。

如何使用

下面看看在python中如何使用

使用 pycrypto 這個庫。此庫內置了大量的加密演算法

首先用openssl生成 rsa 公鑰和私鑰

openssl genrsa -out mykey.pemopenssl rsa -in mykey.pem -pubout > mykey.pub
直接看python**。後續再來修改此文章

from crypto.publickey import rsatext = "my test!"# 公鑰加密pub_key = rsa.importkey(open('mykey.pub'))x = pub_key.encrypt(text)pri_key = rsa.importkey(open('mykey.pem'))decrypted_text = pri_key.decrypt(x[0])decrypted_text == text  # true

對稱加密 非對稱加密

區別在於加密金鑰和解密金鑰是否一樣,一樣則是對稱加密,不一樣則是非對稱加密。對稱加密計算量小,但若不同的客戶端使用不能的金鑰時,伺服器的複雜大。常用的對稱加密包括 des 3des aes des 3des使用的架構為feistel。des金鑰長度為56位,3des相容des,可設定3個56位密碼,...

對稱加密 非對稱加密

1 對稱加密 對稱加密採用了對稱密碼編碼技術,它的特點是檔案加密和解密使用相同的金鑰,即加密金鑰也可以用作解密金鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,金鑰較短,且破譯困難,除了資料加密標準 des 另乙個對稱金鑰加密系統是國際資料加密演算法 idea 它比des的...

對稱加密 非對稱加密

演算法選擇 對稱加密aes,非對稱加密 ecc,訊息摘要 md5,數字簽名 dsa 對稱加密演算法 加解密金鑰相同 名稱金鑰長度 運算速度 安全性資源消耗 des56位較快低 中3des 112位或168位慢中 高aes 128 192 256位快高 低非對稱演算法 加密金鑰和解密金鑰不同 名稱成熟...