閱讀目錄
前言
加密算法分類
Python加密庫
DES加密
AES加密
RSA加密
前言
據記載,公元前400年,古希臘人發明了置換密碼。1881年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用“恩尼格瑪”密碼機,密碼學在戰爭中起著非常重要的作用。
隨著信息化和數字化社會的發展,人們對信息安全和保密的重要性認識不斷提高,于是在1997年,美國國家標準局公布實施了“美國數據加密標準(DES)”,民間力量開始全面介入密碼學的研究和應用中,采用的加密算法有DES、RSA、SHA等。
隨著對加密強度需求的不斷提高,近期又出現了AES、ECC等。
使用密碼學可以達到以下目的:
保密性:防止用戶的標識或數據被讀取。
數據完整性:防止數據被更改。
身份驗證:確保數據發自特定的一方。
加密算法分類
對稱加密算法:
對稱加密采用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰發送方和接收方需要持有同一把密鑰,發送消息和接收消息均使用該密鑰。
相對于非對稱加密,對稱加密具有更高的加解密速度,但雙方都需要事先知道密鑰,密鑰在傳輸過程中可能會被竊取,因此安全性沒有非對稱加密高。
常見的對稱加密算法:DES,AES,3DES等等
非對稱加密算法:
文件加密需要公開密鑰(publickey)和私有密鑰(privatekey)。
接收方在發送消息前需要事先生成公鑰和私鑰,然后將公鑰發送給發送方。發送放收到公鑰后,將待發送數據用公鑰加密,發送給接收方。接收到收到數據后,用私鑰解密。
在這個過程中,公鑰負責加密,私鑰負責解密,數據在傳輸過程中即使被截獲,攻擊者由于沒有私鑰,因此也無法破解。
非對稱加密算法的加解密速度低于對稱加密算法,但是安全性更高。
非對稱加密算法:RSA、DSA、ECC等算法
消息摘要算法:
消息摘要算法可以驗證信息是否被篡改。
在數據發送前,首先使用消息摘要算法生成該數據的簽名,然后簽名和數據一同發送給接收者。
接收者收到數據后,對收到的數據采用消息摘要算法獲得簽名,最后比較簽名是否一致,以此來判斷數據在傳輸過程中是否發生修改。
Python加密庫
PyCrypto是 Python 中密碼學方面最有名的第三方軟件包。可惜的是,它的開發工作于2012年就已停止。
其他人還在繼續發布最新版本的 PyCrypto,如果你不介意使用第三方的二進制包,仍可以取得Python 3.5 的相應版本。
比如,可以在 Github 上找到了對應Python3.5的PyCrypto 二進制包。
幸運的是,有一個該項目的分支PyCrytodome 取代了 PyCrypto 。為了在 Linux 上安裝它,
新聞熱點
疑難解答