Python密碼學XOR算法編碼流程及乘法密碼教程
在本章中,讓我們了解XOR過程及其在Python中的編碼以及乘法密碼的教程
XOR算法
XOR算法的加密和解密轉(zhuǎn)換ASCII字節(jié)格式的純文本,并使用XOR過程將其轉(zhuǎn)換為指定的字節(jié).它為用戶提供以下優(yōu)勢 :
- 快速計算
- 沒有區(qū)別標記左側(cè)和右側(cè)
- 易于理解和分析
代碼
您可以使用以下代碼執(zhí)行XOR過程 :
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流程的代碼為您提供以下輸出 :
說明
- 函數(shù) xor_crypt_string()包括一個參數(shù),用于指定編碼和解碼模式以及字符串值.
- 基本功能是使用base64模塊進行的,這些模塊遵循XOR過程/操作來加密或解密純文本/密文.
注意 : XOR加密用于加密數(shù)據(jù),并且難以通過強力方法破解,即通過生成隨機加密密鑰以匹配正確的密文.
乘法密碼
使用凱撒密碼技術時,加密和解密符號涉及使用簡單的加法或減法基本過程將值轉(zhuǎn)換為數(shù)字.
如果使用乘法轉(zhuǎn)換為密文,它被稱為環(huán)繞情況.考慮使用的字母和相關數(shù)字如下所示 :
這些數(shù)字將用于乘法過程,相關密鑰為7.在這種場景中用于生成乘法密碼的基本公式如下 :
(Alphabet Number * key)mod(total number of alphabets)
通過輸出獲取的數(shù)字映射到上面提到的表格和相應的字母作為加密字母.
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)點是它可以使用非常大的密鑰,如8,953,851.計算機需要相當長的時間才能通過大多數(shù)900萬個密鑰進行暴力破解.
以上就是Python密碼學XOR編碼流程及乘法密碼教程的詳細內(nèi)容,更多關于Python密碼學XOR乘法密碼的資料請關注腳本之家其它相關文章!
相關文章
Python獲取網(wǎng)頁數(shù)據(jù)詳解流程
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python來獲取網(wǎng)頁的數(shù)據(jù),主要應用了Requests庫,大家可以在過程中查缺補漏,提升水平2021-10-10Python并發(fā)編程隊列與多線程最快發(fā)送http請求方式
假如有一個文件,里面有10萬個url,需要對每個url發(fā)送http請求,并打印請求結(jié)果的狀態(tài)碼,如何編寫代碼盡可能快的完成這些任務呢2021-09-09Mysql分組查詢group by與with rollup方式
這篇文章主要介紹了Mysql分組查詢group by與with rollup方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Spectral?clustering譜聚類算法的實現(xiàn)代碼
譜聚類是從圖論中演化出來的算法,它的主要思想是把所有的數(shù)據(jù)看做空間中的點,這些點之間可以用邊連接起來,今天通過本文給大家介紹Spectral?clustering譜聚類算法的實現(xiàn),感興趣的朋友一起看看吧2022-04-04在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例
這篇文章主要介紹了在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12