python密碼學一次性密碼的實現
一次性密碼密碼
一次性密碼密碼是一種Vignere密碼,包括以下功能;
- 這是一個牢不可破的密碼.
- 密鑰與加密郵件的長度完全相同.
- 密鑰由隨機符號組成.
- 顧名思義,密鑰僅使用一次,並且從不再用於任何其他消息加密.
由於這個原因,加密郵件很容易受到密碼分析者的攻擊.用於一次性密碼密碼的密鑰稱為 pad ,因為它打印在紙墊上.
為什麼它是堅不可摧的?
由於以下功能,密鑰是牢不可破的;
- 密鑰隻要是給定的消息.
- 密鑰是真正隨機的,特別是自動生成的.
- 按模10/26/2計算的密鑰和純文本.
- 每個密鑰應使用一次,並由發送方和接收方銷毀.
- 應該有兩個密鑰副本:一個帶發件人,另一個帶接收者.
加密
要加密字母,用戶需要在明文下面寫一個密鑰.明文字母位於頂部,密鑰字母位於左側.兩個字母之間的橫截面是純文本.它在下面的示例中描述 :
解密
要解密一封信,用戶會取左邊的關鍵字母,並在該行中找到密文字母.純文本字母位於列的頂部,用戶可以在其中找到密文字母.
一次性密碼密碼的實現
Python包含一個用於 one-time-pad 密碼實現的hacky實現模塊.包名稱稱為One-Time-Pad,其中包括一個命令行加密工具,該工具使用類似於一次性密碼密碼算法的加密機制.
安裝
您可以使用以下命令安裝此模塊 :
pip install onetimepad
如果您希望從命令行使用它,請運行以下命令 :
onetimepad
代碼
以下代碼有助於生成一次性密碼密碼;
import onetimepad cipher = onetimepad.encrypt('One Time Cipher', 'random') print("Cipher text is ") print(cipher) print("Plain text is ") msg = onetimepad.decrypt(cipher, 'random') print(msg)
輸出
運行上面和下面給出的代碼時,您可以觀察到以下輸出;
註意 : 如果密鑰的長度小於消息的長度(純文本),則加密的消息很容易破解.
在任何情況下,密鑰不一定是隨機的,這使得一次性密碼密碼作為一種有價值的工具.
以上就是python密碼學一次性密碼的實現的詳細內容,更多關於python一次性密碼的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- python密碼學Vignere密碼教程
- Python使用Crypto庫實現加密解密的示例詳解
- python des,aes,rsa加解密的實現
- Python密碼學Caesar Cipher凱撒密碼算法教程
- python密碼學各種加密模塊教程