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

python密碼學換位密碼及換位解密轉置加密教程

 更新時間:2022年05月23日 17:18:54   作者:菜鳥教程  
這篇文章主要為大家介紹了python密碼學換位密碼及換位解密轉置加密教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

換位密碼

Transposition Cipher是一種加密算法,其中明文中的字母順序被重新排列以形成密文.在此過程中,不包括實際的純文本字母.

示例

轉置密碼的一個簡單示例是柱狀轉置密碼其中純文本中的每個字符都是水平寫入的,具有指定的字母寬度.密碼是垂直寫入的,它創(chuàng)建了一個完全不同的密文.

考慮純文本 hello world ,讓我們應用簡單的柱狀轉置技術,如圖所示在

純文本字符水平放置,密文以垂直格式創(chuàng)建為:holewdlo lr.現在,接收方必須使用同一個表將密文解密為純文本.

代碼

以下程序代碼演示了柱狀轉置技術的基本實現 :

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'))

解釋

  • 使用函數 split_len(),我們可以拆分純文本字符,可以按柱狀或行格式放置.
  • 編碼方法有助于使用指定列數的密鑰創(chuàng)建密文并通過讀取每列中的字符來打印密文.

輸出

程序代碼對于柱狀轉置技術的基本實現,給出以下輸出 :

注意 : 密碼分析者觀察到當進行轉座技術時加密安全性的顯著改善.他們還指出,使用相同的轉置密碼重新加密密文可以提高安全性.

以上,我們了解了Transposition Cipher.下面,我們將討論它的加密.

Pyperclip

Python編程語言中 pyperclip 插件的主要用法是執(zhí)行跨平臺模塊,用于將文本復制和粘貼到剪貼板.您可以使用如下所示的命令安裝python pyperclip 模塊

pip install pyperclip

如果系統中已存在該要求,您可以看到以下輸出 :

代碼

用于加密轉置密碼的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()

輸出

用于加密轉置密碼的程序代碼,其中 pyperclip 是主模塊提供以下輸出 :

解釋

  • 函數 main()調用 encryptMessage(),其中包括使用 len 函數拆分字符并以柱狀格式迭代它們的過程.
  • 主函數在結尾處初始化以獲得適當的輸出.

解密轉置密碼的步驟

代碼

請注意以下代碼以便更好地理解解密轉置密碼.密碼為 6 的消息轉置密碼的密文被提取為 Toners raiCntisippoh.

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()

說明

密文和提到的密鑰是作為輸入參數的兩個值,用于解碼或解密通過以列格式放置字符并以水平方式讀取它們的反向技術密文.

您可以以列格式放置字母,然后使用以下部分將它們組合或連接在一起代碼 :

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)

輸出

解密轉置密碼的程序代碼給出以下輸出;

以上就是python密碼學換位密碼及換位解密轉置加密教程的詳細內容,更多關于python密碼學換位解密轉置加密的資料請關注腳本之家其它相關文章!

相關文章

  • python庫Celery異步發(fā)送電子郵件定時生成報告實戰(zhàn)示例

    python庫Celery異步發(fā)送電子郵件定時生成報告實戰(zhàn)示例

    這篇文章主要介紹了python庫Celery異步發(fā)送電子郵件定時生成報告實戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 淺談Python用QQ郵箱發(fā)送郵件時授權碼的問題

    淺談Python用QQ郵箱發(fā)送郵件時授權碼的問題

    下面小編就為大家分享一篇淺談Python用QQ郵箱發(fā)送郵件時授權碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 10招!看骨灰級Pythoner玩轉Python的方法

    10招!看骨灰級Pythoner玩轉Python的方法

    這篇文章主要介紹了10招!看骨灰級Pythoner如何玩轉Python,需要的朋友可以參考下
    2019-04-04
  • Python任務調度利器之APScheduler詳解

    Python任務調度利器之APScheduler詳解

    所謂的任務調度是指安排任務的執(zhí)行計劃,即何時執(zhí)行,怎么執(zhí)行等。這篇文章主要介紹了Python任務調度利器之APScheduler詳解,需要的朋友可以參考下
    2020-04-04
  • Python中Pickle模塊和base64模塊的使用解析

    Python中Pickle模塊和base64模塊的使用解析

    這篇文章主要介紹了Python中Pickle模塊和base64模塊的使用解析,pickle模塊是python的標準模塊,提供了對于python數據的序列化操作,可以將數據轉換為bytes類型,其序列化速度比json模塊要高,需要的朋友可以參考下
    2023-09-09
  • Python爬蟲谷歌Chrome F12抓包過程原理解析

    Python爬蟲谷歌Chrome F12抓包過程原理解析

    這篇文章主要介紹了Python爬蟲谷歌Chrome F12抓包過程原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python3.x和Python2.x的區(qū)別介紹

    Python3.x和Python2.x的區(qū)別介紹

    python3.x與python2.x區(qū)別很大,這里搜索了一些相關內容,記錄在此,供自己學習參考,有需要的朋友不妨看看
    2013-02-02
  • Python學習之函數 def

    Python學習之函數 def

    這篇文章主要介紹了Python的函數 def,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-10-10
  • 使用Python開發(fā)SQLite代理服務器的方法

    使用Python開發(fā)SQLite代理服務器的方法

    今天小編就為大家分享一篇使用Python開發(fā)SQLite代理服務器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python中uuid模塊實例淺析

    python中uuid模塊實例淺析

    在本篇文章里小編給大家整理了一篇關于python中uuid模塊實例淺析內容,有需要的朋友們可以學習下。
    2020-12-12

最新評論

定安县| 尚义县| 库伦旗| 嘉荫县| 东阿县| 广灵县| 潮州市| 凉城县| 河池市| 兴安盟| 阳山县| 迭部县| 岳阳市| 革吉县| 辉县市| 盐津县| 肇州县| 炎陵县| 嘉黎县| 卓尼县| 公主岭市| 姚安县| 石台县| 江北区| 定州市| 江都市| 高密市| 思茅市| 大埔县| 绿春县| 温泉县| 黎城县| 林西县| 彭水| 新和县| 青海省| 洛隆县| 江华| 通榆县| 九龙城区| 兴安盟|