Python密碼學(xué)XOR算法編碼流程及乘法密碼教程
在本章中,讓我們了解XOR過(guò)程及其在Python中的編碼以及乘法密碼的教程
XOR算法
XOR算法的加密和解密轉(zhuǎn)換ASCII字節(jié)格式的純文本,并使用XOR過(guò)程將其轉(zhuǎn)換為指定的字節(jié).它為用戶提供以下優(yōu)勢(shì) :
- 快速計(jì)算
- 沒(méi)有區(qū)別標(biāo)記左側(cè)和右側(cè)
- 易于理解和分析
代碼
您可以使用以下代碼執(zhí)行XOR過(guò)程 :
def?xor_crypt_string(data,?key?=?'awesomepassword',?encode?=?False,?decode?=?False):
???from?itertools?import?izip,?cycle
???import?base64
???if?decode:
??????data?=?base64.decodestring(data)
???xored?=?''.join(chr(ord(x)?^?ord(y))?for?(x,y)?in?izip(data,?cycle(key)))
???if?encode:
??????return?base64.encodestring(xored).strip()
???return?xored
secret_data?=?"XOR?procedure"
print("The?cipher?text?is")
print?xor_crypt_string(secret_data,?encode?=?True)
print("The?plain?text?fetched")
print?xor_crypt_string(xor_crypt_string(secret_data,?encode?=?True),?decode?=?True)輸出
XOR流程的代碼為您提供以下輸出 :

說(shuō)明
- 函數(shù) xor_crypt_string()包括一個(gè)參數(shù),用于指定編碼和解碼模式以及字符串值.
- 基本功能是使用base64模塊進(jìn)行的,這些模塊遵循XOR過(guò)程/操作來(lái)加密或解密純文本/密文.
注意 : XOR加密用于加密數(shù)據(jù),并且難以通過(guò)強(qiáng)力方法破解,即通過(guò)生成隨機(jī)加密密鑰以匹配正確的密文.
乘法密碼
使用凱撒密碼技術(shù)時(shí),加密和解密符號(hào)涉及使用簡(jiǎn)單的加法或減法基本過(guò)程將值轉(zhuǎn)換為數(shù)字.
如果使用乘法轉(zhuǎn)換為密文,它被稱為環(huán)繞情況.考慮使用的字母和相關(guān)數(shù)字如下所示 :

這些數(shù)字將用于乘法過(guò)程,相關(guān)密鑰為7.在這種場(chǎng)景中用于生成乘法密碼的基本公式如下 :
(Alphabet Number * key)mod(total number of alphabets)
通過(guò)輸出獲取的數(shù)字映射到上面提到的表格和相應(yīng)的字母作為加密字母.

Python中乘法密碼的基本調(diào)制函數(shù)如下:
def?unshift(key,?ch): ???offset?=?ord(ch)?-?ASC_A ???return?chr(((key[0]?*?(offset?+?key[1]))?%?WIDTH)?+?ASC_A)
注意 : 乘法密碼的優(yōu)點(diǎn)是它可以使用非常大的密鑰,如8,953,851.計(jì)算機(jī)需要相當(dāng)長(zhǎng)的時(shí)間才能通過(guò)大多數(shù)900萬(wàn)個(gè)密鑰進(jìn)行暴力破解.
以上就是Python密碼學(xué)XOR編碼流程及乘法密碼教程的詳細(xì)內(nèi)容,更多關(guān)于Python密碼學(xué)XOR乘法密碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python 利用Entrez庫(kù)篩選下載PubMed文獻(xiàn)摘要的示例
這篇文章主要介紹了Python 利用Entrez庫(kù)篩選下載PubMed文獻(xiàn)摘要的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11
Python數(shù)據(jù)分析pandas模塊用法實(shí)例詳解
這篇文章主要介紹了Python數(shù)據(jù)分析pandas模塊用法,結(jié)合實(shí)例形式分析了pandas模塊對(duì)象創(chuàng)建、數(shù)值運(yùn)算等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-11-11
簡(jiǎn)單了解Python matplotlib線的屬性
這篇文章主要介紹了簡(jiǎn)單了解Python matplotlib線的屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06
利用Python實(shí)現(xiàn)RSA加密解密方法實(shí)例
過(guò)去幾天我一直在嘗試用Python實(shí)現(xiàn)RSA算法,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)RSA加密解密的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
Python實(shí)現(xiàn)簡(jiǎn)單HTML表格解析的方法
這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單HTML表格解析的方法,涉及Python基于libxml2dom模塊操作html頁(yè)面元素的技巧,需要的朋友可以參考下2015-06-06
pygame庫(kù)實(shí)現(xiàn)俄羅斯方塊小游戲
這篇文章主要為大家詳細(xì)介紹了pygame庫(kù)實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10

