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

Python實(shí)現(xiàn)柵欄密碼的加密解密方法詳解

 更新時(shí)間:2023年01月16日 11:38:23   作者:做網(wǎng)安的小王  
這篇文章主要介紹了Python實(shí)現(xiàn)柵欄密碼的加密解密方法,所謂柵欄密碼,就是把要加密的明文分成N個(gè)一組,然后把每組的第1個(gè)字連起來(lái),形成一段無(wú)規(guī)律的話。不過(guò)柵欄密碼本身有一個(gè)潛規(guī)則,就是組成柵欄的字母一般不會(huì)太多

1.柵欄密碼介紹

所謂柵欄密碼,就是把要加密的明文分成N個(gè)一組,然后把每組的第1個(gè)字連起來(lái),形成一段無(wú)規(guī)律的話。不過(guò)柵欄密碼本身有一個(gè)潛規(guī)則,就是組成柵欄的字母一般不會(huì)太多。 —百度百科

例如: 將明文字符串"hello world"分為2組,即柵欄(密鑰)為2。

去掉空格:helloworld
2個(gè)1組:
 helloworld
取第一個(gè)字母組合:hlool
取第二個(gè)字母組合:elwrd
最后得到柵欄加密為:hloolelwrd 

注意:當(dāng)len(strings)%n != 0時(shí),缺少的位數(shù)使用@填充。len(strins)代表明文字符串長(zhǎng)度,n代表柵欄數(shù)(密鑰)。

2.柵欄密碼加密

fence_Passwd_encode.py:

#!/usr/bin/python
# Env: python3
# Author: afei_0and1
# -*- coding: utf8 -*-
def fence_Passwd_encode():string = input('請(qǐng)輸入需要加密的明文:')num = int(input('請(qǐng)輸入柵欄數(shù)(密鑰):'))res = ''for i in range(int(num)):#遍歷循環(huán)輸出結(jié)果for j in range(int(string.__len__()/num + 0.5)):#print(j)try:res += string[j*num+i]except:passprint(res)if(__name__ == '__main__'):fence_Passwd_encode() 

3.柵欄密碼解密(爆破)

fence_Passwd_burst.py:

#!/usr/bin/python
# Env: python3
# -*- coding: utf8 -*-
import sys
def fence_Passwd_burst():if (len(sys.argv) < 2):print("-----------------------------------------------")print(" ")print("Useg: python %s <fence_encryp_string>" % sys.argv[0])print("eg: python fence_Passwd_burst.py 'hloolelwrd'")print(" ")print("-----------------------------------------------")returnsecret = sys.argv[1]#柵欄密碼解密,循環(huán)遍歷有多少欄res = [step for step in range(2, len(secret)) if len(secret)%step == 0]for step in res:flag = ''#獲取解密結(jié)果,以step欄進(jìn)行遍歷獲取解密后的flagfor i in range(step):flag += secret[i::step]print('第%s欄: 解密結(jié)果:%s' %(str(step), flag))
if(__name__ == '__main__'):fence_Passwd_burst() 

4.W型柵欄密碼加密

W型柵欄密碼是柵欄密碼的變種,將明文按W型排列,然后將每一行的字母依次連起來(lái)組成密文,行數(shù)就是柵欄數(shù),即密鑰。解密則同樣根據(jù)這個(gè)“W”圖案,將每一列的字母依次連接起來(lái)組成明文。W型柵欄密碼的密鑰不只是密文長(zhǎng)度的因數(shù),任何小于密文長(zhǎng)度大于1的整數(shù)都有可能。

fence_W-Type-encode.py:

#!/usr/bin/python
# Env: python3
# -*- coding: utf8 -*-
import sys
def generaget_W():if (len(sys.argv) < 3):print("-----------------------------------------------")print(" ")print("Useg: python %s <string> <col_num>" % sys.argv[0])print("eg: python fence_W-Type_encode.py helloworld 3")print(" ")print("-----------------------------------------------")returnstring = sys.argv[1]num = sys.argv[2]arr = [['*']*len(string) for i in range(int(num))]#行數(shù),初始定義為0row = 0upflag = False#在矩陣上按“W”畫出stringfor column in range(len(string)):arr[row][column] = string[column]if row == int(num)-1:upflag = Trueif row == 0:upflag = Falseif upflag:#上邊界row -= 1else:#下邊界row += 1#打印W圖案for i in arr:print(i)#存放加密結(jié)果res = []for row in range(int(num)):for column in range(len(string)):if arr[row][column] != '*':res.append(arr[row][column])print(''.join(res))if(__name__ == '__main__'):generaget_W() 

到此這篇關(guān)于Python實(shí)現(xiàn)柵欄密碼的加密解密方法詳解的文章就介紹到這了,更多相關(guān)Python柵欄密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Python迭代器iterator生成器generator使用解析

    Python迭代器iterator生成器generator使用解析

    這篇文章主要介紹了Python迭代器iterator生成器generator使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法

    opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法

    這篇文章主要介紹了opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • python監(jiān)控文件或目錄變化

    python監(jiān)控文件或目錄變化

    這篇文章主要為大家詳細(xì)介紹了python監(jiān)控文件或目錄變化的實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-06-06
  • pandas Dataframe行列讀取的實(shí)例

    pandas Dataframe行列讀取的實(shí)例

    今天小編就為大家分享一篇pandas Dataframe行列讀取的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 如何使用 Pylint 來(lái)規(guī)范 Python 代碼風(fēng)格(來(lái)自IBM)

    如何使用 Pylint 來(lái)規(guī)范 Python 代碼風(fēng)格(來(lái)自IBM)

    本文通過(guò)詳細(xì)的理論介紹和簡(jiǎn)單易懂的實(shí)例全面介紹了 Python 代碼分析工具 Pylint。相信讀者看完后一定可以輕松地將 Pylint 運(yùn)用到自己的開發(fā)工程中
    2018-04-04
  • 簡(jiǎn)單介紹Python中的幾種數(shù)據(jù)類型

    簡(jiǎn)單介紹Python中的幾種數(shù)據(jù)類型

    Python基本內(nèi)置數(shù)據(jù)類型有很多種,比如:整型(數(shù)字)、字符串、元組、列表、字典和布爾類型,下面就來(lái)給大家詳細(xì)介紹下
    2016-01-01
  • Python實(shí)現(xiàn)對(duì)特定列表進(jìn)行從小到大排序操作示例

    Python實(shí)現(xiàn)對(duì)特定列表進(jìn)行從小到大排序操作示例

    這篇文章主要介紹了Python實(shí)現(xiàn)對(duì)特定列表進(jìn)行從小到大排序操作,涉及Python文件讀取、計(jì)算、正則匹配、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • Python制作一個(gè)WiFi密碼測(cè)試工具

    Python制作一個(gè)WiFi密碼測(cè)試工具

    這篇文章主要為大家詳細(xì)介紹了Python如何通過(guò)字典攻擊方式幫助用戶測(cè)試 Wi-Fi 網(wǎng)絡(luò)的安全性,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-01-01
  • Python使用functools模塊中的partial函數(shù)生成偏函數(shù)

    Python使用functools模塊中的partial函數(shù)生成偏函數(shù)

    所謂偏函數(shù)即是規(guī)定了固定參數(shù)的函數(shù),在函數(shù)式編程中我們經(jīng)常可以用到,這里我們就來(lái)看一下Python使用functools模塊中的partial函數(shù)生成偏函數(shù)的方法
    2016-07-07
  • 關(guān)于pyqtSignal的基本使用

    關(guān)于pyqtSignal的基本使用

    這篇文章主要介紹了關(guān)于pyqtSignal的基本使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評(píng)論

理塘县| 开平市| 贡山| 华蓥市| 漳浦县| 如皋市| 灵台县| 磐安县| 若尔盖县| 鹤岗市| 秭归县| 东源县| 永福县| 湛江市| 上思县| 博白县| 澄江县| 玉溪市| 南昌县| 孟连| 清水县| 临猗县| 肃北| 广河县| 潮州市| 广宗县| 宜都市| 时尚| 龙口市| 隆化县| 武陟县| 泽州县| 洪雅县| 锡林浩特市| 德昌县| 南汇区| 古蔺县| 托克托县| 望城县| 土默特右旗| 鲁甸县|