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

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

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

仿射密碼

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

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

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

代碼

您可以使用以下代碼實現(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')

輸出

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

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

單字母密碼

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

單字母密碼使用固定替換用于加密整個消息.這里顯示使用帶有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)建一個單字母程序作為類表示,其中包括加密和解密的所有功能.

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)用此文件以實現(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)您實現(xiàn)上面給出的代碼時,您可以觀察到以下輸出;

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

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

相關(guān)文章

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

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

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

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

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

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

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

    python安裝教程 Pycharm安裝詳細教程

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

霍州市| 太原市| 青浦区| 若尔盖县| 潍坊市| 龙州县| 麦盖提县| 鸡泽县| 山东省| 尤溪县| 上高县| 东港市| 乌海市| 宝鸡市| 赞皇县| 竹北市| 巧家县| 加查县| 珠海市| 溧水县| 福海县| 秦安县| 边坝县| 武夷山市| 沧源| 北票市| 凤翔县| 青阳县| 高唐县| 崇文区| 洛扎县| 通榆县| 甘孜县| 奉新县| 志丹县| 乐清市| 河池市| 积石山| 桦川县| 惠东县| 同仁县|