




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第python密碼學(xué)換位密碼及換位解密轉(zhuǎn)置加密教程目錄換位密碼示例代碼解釋輸出Pyperclip代碼輸出解釋解密轉(zhuǎn)置密碼的步驟代碼說(shuō)明輸出
換位密碼
TranspositionCipher是一種加密算法,其中明文中的字母順序被重新排列以形成密文.在此過(guò)程中,不包括實(shí)際的純文本字母.
示例
轉(zhuǎn)置密碼的一個(gè)簡(jiǎn)單示例是柱狀轉(zhuǎn)置密碼其中純文本中的每個(gè)字符都是水平寫入的,具有指定的字母寬度.密碼是垂直寫入的,它創(chuàng)建了一個(gè)完全不同的密文.
考慮純文本helloworld,讓我們應(yīng)用簡(jiǎn)單的柱狀轉(zhuǎn)置技術(shù),如圖所示在
純文本字符水平放置,密文以垂直格式創(chuàng)建為:holewdlolr.現(xiàn)在,接收方必須使用同一個(gè)表將密文解密為純文本.
代碼
以下程序代碼演示了柱狀轉(zhuǎn)置技術(shù)的基本實(shí)現(xiàn):
def
split_len(seq,
length):
return
[seq[i:i
+
length]
for
i
in
range(0,
len(seq),
length)]
def
encode(key,
plaintext):
order
=
{
int(val):
num
for
num,
val
in
enumerate(key)
ciphertext
=
''
for
index
in
sorted(order.keys()):
for
part
in
split_len(plaintext,
len(key)):
try:ciphertext
+=
part[order[index]]
except
IndexError:
continue
return
ciphertext
print(encode('3214',
'HELLO'))
解釋
使用函數(shù)split_len(),我們可以拆分純文本字符,可以按柱狀或行格式放置.編碼方法有助于使用指定列數(shù)的密鑰創(chuàng)建密文并通過(guò)讀取每列中的字符來(lái)打印密文.
輸出
程序代碼對(duì)于柱狀轉(zhuǎn)置技術(shù)的基本實(shí)現(xiàn),給出以下輸出:
注意:密碼分析者觀察到當(dāng)進(jìn)行轉(zhuǎn)座技術(shù)時(shí)加密安全性的顯著改善.他們還指出,使用相同的轉(zhuǎn)置密碼重新加密密文可以提高安全性.
以上,我們了解了TranspositionCipher.下面,我們將討論它的加密.
Pyperclip
Python編程語(yǔ)言中pyperclip插件的主要用法是執(zhí)行跨平臺(tái)模塊,用于將文本復(fù)制和粘貼到剪貼板.您可以使用如下所示的命令安裝pythonpyperclip模塊
pipinstallpyperclip
如果系統(tǒng)中已存在該要求,您可以看到以下輸出:
用于加密轉(zhuǎn)置密碼的python代碼,其中pyperclip是主要模塊,如下所示:
import
pyperclip
def
main():
myMessage
=
'Transposition
Cipher'
myKey
=
10
ciphertext
=
encryptMessage(myKey,
myMessage)
print("Cipher
Text
is")
print(ciphertext
+
'|')
pyperclip.copy(ciphertext)
def
encryptMessage(key,
message):
ciphertext
=
['']
*
key
for
col
in
range(key):
position
=
col
while
position
len(message):
ciphertext[col]
+=
message[position]
position
+=
key
return
''.join(ciphertext)
#Cipher
text
if
__name__
==
'__main__':
main()
用于加密轉(zhuǎn)置密碼的程序代碼,其中pyperclip是主模塊提供以下輸出:
函數(shù)main()調(diào)用encryptMessage(),其中包括使用len函數(shù)拆分字符并以柱狀格式迭代它們的過(guò)程.主函數(shù)在結(jié)尾處初始化以獲得適當(dāng)?shù)妮敵?
解密轉(zhuǎn)置密碼的步驟
請(qǐng)注意以下代碼以便更好地理解解密轉(zhuǎn)置密碼.密碼為6的消息轉(zhuǎn)置密碼的密文被提取為TonersraiCntisippoh.
import
math,
pyperclip
def
main():
myMessage=
'Toners
raiCntisippoh'
myKey
=
6
plaintext
=
decryptMessage(myKey,
myMessage)
print("The
plain
text
is")
print('Transposition
Cipher')
def
decryptMessage(key,
message):
numOfColumns
=
math.ceil(len(message)
/
key)
numOfRows
=
key
numOfShadedBoxes
=
(numOfColumns
*
numOfRows)
-
len(message)
plaintext
=
float('')
*
numOfColumns
col
=
0
row
=
0
for
symbol
in
message:
plaintext[col]
+=
symbol
col
+=
1
if
(col
==
numOfColumns)
or
(col
==
numOfColumns
-
1
and
row
=
numOfRows
-
numOfShadedBoxes):
col
=
0
row
+=
1
return
''.join(plaintext)
if
__name__
==
'__main__':
main()
說(shuō)明
密文和提到的密鑰是作為輸入?yún)?shù)的兩個(gè)值,用于解碼或解密通過(guò)以列格式放置字符并以水平方式讀取它們的反向技術(shù)密文.
您可以以列格式放置字母,然后使用以下部分將它們組合或連接在一起代碼:
for
symbol
in
message:
plaintext[col]
+=
symbol
col
+=
1
if
(col
==
numOfColumns)
or
(col
==
numOfColumns
-
1
and
row
=
numOfRows
-
numOfShadedBo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 尋常痤瘡的臨床護(hù)理
- 生涯發(fā)展指導(dǎo)課:《規(guī)劃的人生更精彩》學(xué)習(xí)心得體會(huì)模版
- 買賣房過(guò)渡合同范例
- 人防工程租賃合同范例
- 2025年餐飲服務(wù)員年度工作總結(jié)模版
- 個(gè)人月度工作總結(jié)模版
- 2024年太陽(yáng)能組件生產(chǎn)裝備項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2025年小學(xué)數(shù)學(xué)組教研活動(dòng)總結(jié)模版
- 保險(xiǎn)推廣合同范例
- 個(gè)人桑蠶養(yǎng)殖合同范例
- GB/T 29049-2012整樘門垂直荷載試驗(yàn)
- 2022年貴州貴陽(yáng)市中考英語(yǔ)真題
- FZ/T 32001-2018亞麻紗
- 《大數(shù)據(jù)環(huán)境下的網(wǎng)絡(luò)安全問(wèn)題探討(論文)8000字》
- 粵教科技版科學(xué)六年級(jí)下冊(cè)第14課《生物生存的環(huán)境》教學(xué)課件
- 高考語(yǔ)文作文素材:《典籍里的中國(guó)》課件33張
- 2022年道路交通安全防汛工作應(yīng)急預(yù)案
- (完整)《神經(jīng)病學(xué)》考試題庫(kù)及答案
- 思政課社會(huì)實(shí)踐報(bào)告1500字6篇
- GB∕T 25119-2021 軌道交通 機(jī)車車輛電子裝置
- 電池PCBA規(guī)格書(shū)
評(píng)論
0/150
提交評(píng)論