最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python密碼學(xué)仿射密碼及攻擊單字母密碼教程

 更新時(shí)間:2022年05月24日 10:19:31   作者:菜鳥教程  
這篇文章主要為大家介紹了Python密碼學(xué)仿射及攻擊單字母密碼教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

仿射密碼

Affine Cipher是Multiplicative Cipher和Caesar Cipher算法的組合.

仿射密碼的基本實(shí)現(xiàn)如下圖所示 :

我們將通過創(chuàng)建包含兩個(gè)加密和解密基本函數(shù)的相應(yīng)類來實(shí)現(xiàn)仿射密碼.

代碼

您可以使用以下代碼實(shí)現(xiàn)仿射密碼 :

?class仿射(對象):
?DIE?=?128?
?KEY?=(7,3,55)
?def?__init?__(self):
#傳遞
?def?encryptChar(self,char):
?K1,K2,?kI?=?self.KEY?
?return?chr((K1?*?ord(char)+?K2)%self.DIE)
?def?encrypt(self,string):
?return""?.join(map(self.encryptChar,string))
?def?decryptChar(self,char):
?K1,K2,KI?=?self.KEY?
?return?chr(KI?*?(ord(char)?-??K2)%self.DIE)
?def?decrypt(self,string):
?return"".join(map(self.decryptChar,string))
?affine?=?Affine()
?print?affine.encrypt('?Affine?Cipher')
?print?affine.decrypt('*?18?FMT')

輸出

實(shí)現(xiàn)仿射密碼時(shí),可以觀察到以下輸出;

輸出顯示純文本消息仿射密碼的加密消息和已作為輸入 abcdefg發(fā)送的消息的解密消息.

單字母密碼

接下來,您將學(xué)習(xí)使用Python的單字母密碼及其黑客攻擊.

單字母密碼使用固定替換用于加密整個(gè)消息.這里顯示使用帶有JSON對象的Python字典的單字母密碼 :

monoalpha_cipher?=?{
???'a':?'m',
???'b':?'n',
???'c':?'b',
???'d':?'v',
???'e':?'c',
???'f':?'x',
???'g':?'z',
???'h':?'a',
???'i':?'s',
???'j':?'d',
???'k':?'f',
???'l':?'g',
???'m':?'h',
???'n':?'j',
???'o':?'k',
???'p':?'l',
???'q':?'p',
???'r':?'o',
???'s':?'i',
???'t':?'u',
???'u':?'y',
???'v':?'t',
???'w':?'r',
???'x':?'e',
???'y':?'w',
???'z':?'q',
'?':?'?',
}

借助此詞典,我們可以使用相關(guān)字母加密字母為JSON對象中的值.

以下程序創(chuàng)建一個(gè)單字母程序作為類表示,其中包括加密和解密的所有功能.

from?string?import?letters,?digits
from?random?import?shuffle
def?random_monoalpha_cipher(pool?=?None):
???if?pool?is?None:
??????pool?=?letters?+?digits
???original_pool?=?list(pool)
???shuffled_pool?=?list(pool)
???shuffle(shuffled_pool)
???return?dict(zip(original_pool,?shuffled_pool))
def?inverse_monoalpha_cipher(monoalpha_cipher):
???inverse_monoalpha?=?{}
???for?key,?value?in?monoalpha_cipher.iteritems():
??????inverse_monoalpha[value]?=?key
???return?inverse_monoalpha
def?encrypt_with_monoalpha(message,?monoalpha_cipher):
???encrypted_message?=?[]
???for?letter?in?message:
??????encrypted_message.append(monoalpha_cipher.get(letter,?letter))
???return?''.join(encrypted_message)
def?decrypt_with_monoalpha(encrypted_message,?monoalpha_cipher):
???return?encrypt_with_monoalpha(
??????encrypted_message,
??????inverse_monoalpha_cipher(monoalpha_cipher)
???)

稍后調(diào)用此文件以實(shí)現(xiàn)Monoalphabetic密碼的加密和解密過程,如下所示 :

import?monoalphabeticCipher?as?mc
cipher?=?mc.random_monoalpha_cipher()
print(cipher)
encrypted?=?mc.encrypt_with_monoalpha('Hello?all?you?hackers?out?there!',?cipher)
decrypted?=?mc.decrypt_with_monoalpha('sXGGt?SGG?Nt0?HSrLXFC?t0U?UHXFX!',?cipher)
print(encrypted)
print(decrypted)

輸出

當(dāng)您實(shí)現(xiàn)上面給出的代碼時(shí),您可以觀察到以下輸出;

T嗯,你可以用一個(gè)指定的鍵值對來破解單字母密碼,這會(huì)將密文破解成實(shí)際的純文本.

以上就是Python密碼學(xué)仿射密碼及攻擊單字母密碼教程的詳細(xì)內(nèi)容,更多關(guān)于Python仿射攻擊單字母密碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配

    python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配

    這篇文章主要介紹了python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運(yùn)算

    python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運(yùn)算

    這篇文章主要介紹了python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • pandas數(shù)據(jù)處理進(jìn)階詳解

    pandas數(shù)據(jù)處理進(jìn)階詳解

    這篇文章主要介紹了pandas數(shù)據(jù)處理進(jìn)階詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python安裝教程 Pycharm安裝詳細(xì)教程

    python安裝教程 Pycharm安裝詳細(xì)教程

    這篇文章主要介紹了python的安裝教程,和Pycharm的安裝詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 老生常談python之鴨子類和多態(tài)

    老生常談python之鴨子類和多態(tài)

    下面小編就為大家?guī)硪黄仙U刾ython之鴨子類和多態(tài)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Django實(shí)現(xiàn)圖片文字同時(shí)提交的方法

    Django實(shí)現(xiàn)圖片文字同時(shí)提交的方法

    這篇文章主要介紹了Django實(shí)現(xiàn)圖片文字同時(shí)提交的方法,較為詳細(xì)的分析了Django+jQuery實(shí)現(xiàn)圖片與文字同時(shí)提交的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python實(shí)現(xiàn)將列表拆分為大小為N的塊

    Python實(shí)現(xiàn)將列表拆分為大小為N的塊

    這篇文章主要為大家整理了一些常見的Python實(shí)現(xiàn)將列表拆分為大小為N的塊的方法,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,有需要的小伙伴可以了解下
    2023-09-09
  • 簡化Python的Django框架代碼的一些示例

    簡化Python的Django框架代碼的一些示例

    這篇文章主要介紹了簡化Python的Django框架代碼的一些示例,實(shí)際上文中只是抽取了一些Django中最基本的功能用于簡化入門者的上手復(fù)雜度,下,需要的朋友可以參考下
    2015-04-04
  • Pycharm github配置實(shí)現(xiàn)過程圖解

    Pycharm github配置實(shí)現(xiàn)過程圖解

    這篇文章主要介紹了Pycharm github配置實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python超有用的多版本管理工具pyenv

    Python超有用的多版本管理工具pyenv

    使用不同的Python版本,如果我們把需要的不同版本的Python都下載到服務(wù)器上,管理起來會(huì)非常困難,多版本并存又容易互相干擾,接下來就來介紹一個(gè)Python環(huán)境管理工具:pyenv,就可輕松的在多個(gè)版本的Python之間自由切換,需要的朋友可以參考下
    2021-09-09

最新評論

南靖县| 阿克陶县| 霍城县| 靖江市| 云阳县| 盘山县| 合山市| 张掖市| 芷江| 东安县| 揭东县| 田东县| 会同县| 通州市| 淮安市| 江津市| 湖北省| 历史| 广宗县| 仁化县| 抚松县| 易门县| 鹤峰县| 河间市| 宜都市| 惠水县| 常熟市| 嘉定区| 五华县| 诏安县| 巴林左旗| 贡嘎县| 盐山县| 潞城市| 平阴县| 文山县| 徐州市| 郎溪县| 南充市| 平南县| 青河县|