python密碼學(xué)一次性密碼的實(shí)現(xiàn)
一次性密碼密碼
一次性密碼密碼是一種Vignere密碼,包括以下功能;
- 這是一個(gè)牢不可破的密碼.
- 密鑰與加密郵件的長度完全相同.
- 密鑰由隨機(jī)符號(hào)組成.
- 顧名思義,密鑰僅使用一次,并且從不再用于任何其他消息加密.
由于這個(gè)原因,加密郵件很容易受到密碼分析者的攻擊.用于一次性密碼密碼的密鑰稱為 pad ,因?yàn)樗蛴≡诩垑|上.
為什么它是堅(jiān)不可摧的?
由于以下功能,密鑰是牢不可破的;
- 密鑰只要是給定的消息.
- 密鑰是真正隨機(jī)的,特別是自動(dòng)生成的.
- 按模10/26/2計(jì)算的密鑰和純文本.
- 每個(gè)密鑰應(yīng)使用一次,并由發(fā)送方和接收方銷毀.
- 應(yīng)該有兩個(gè)密鑰副本:一個(gè)帶發(fā)件人,另一個(gè)帶接收者.
加密
要加密字母,用戶需要在明文下面寫一個(gè)密鑰.明文字母位于頂部,密鑰字母位于左側(cè).兩個(gè)字母之間的橫截面是純文本.它在下面的示例中描述 :

解密
要解密一封信,用戶會(huì)取左邊的關(guān)鍵字母,并在該行中找到密文字母.純文本字母位于列的頂部,用戶可以在其中找到密文字母.
一次性密碼密碼的實(shí)現(xiàn)
Python包含一個(gè)用于 one-time-pad 密碼實(shí)現(xiàn)的hacky實(shí)現(xiàn)模塊.包名稱稱為One-Time-Pad,其中包括一個(gè)命令行加密工具,該工具使用類似于一次性密碼密碼算法的加密機(jī)制.
安裝
您可以使用以下命令安裝此模塊 :
pip install onetimepad
如果您希望從命令行使用它,請(qǐng)運(yùn)行以下命令 :
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)輸出
運(yùn)行上面和下面給出的代碼時(shí),您可以觀察到以下輸出;

注意 : 如果密鑰的長度小于消息的長度(純文本),則加密的消息很容易破解.
在任何情況下,密鑰不一定是隨機(jī)的,這使得一次性密碼密碼作為一種有價(jià)值的工具.
以上就是python密碼學(xué)一次性密碼的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于python一次性密碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python遺傳算法之單/多目標(biāo)規(guī)劃問題
本文主要介紹了python遺傳算法之單/多目標(biāo)規(guī)劃問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
詳解Numpy擴(kuò)充矩陣維度(np.expand_dims, np.newaxis)和刪除維度(np.squeeze)的方
這篇文章主要介紹了詳解Numpy擴(kuò)充矩陣維度(np.expand_dims, np.newaxis)和刪除維度(np.squeeze)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python實(shí)現(xiàn)定時(shí)精度可調(diào)節(jié)的定時(shí)器
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)定時(shí)精度可調(diào)節(jié)的定時(shí)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Python列表創(chuàng)建與銷毀及緩存池機(jī)制
這篇文章主要介紹了Python列表創(chuàng)建與銷毀及緩存池機(jī)制,文章基于python展開對(duì)列表創(chuàng)建與銷毀內(nèi)容的展開,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
Python?第三方庫?Pandas?數(shù)據(jù)分析教程
這篇文章主要介紹了Python?第三方庫?Pandas?數(shù)據(jù)分析教程的相關(guān)資料,需要的朋友可以參考下2022-09-09
python多線程semaphore實(shí)現(xiàn)線程數(shù)控制的示例
這篇文章主要介紹了python多線程semaphore實(shí)現(xiàn)線程數(shù)控制的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

