栅栏密码(Fence)——python解密
生活随笔
收集整理的這篇文章主要介紹了
栅栏密码(Fence)——python解密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介
所謂柵欄密碼,就是把要加密的明文分成N個一組,然后把每組的第1個字連起來,形成一段無規律的話。 不過柵欄密碼本身有一個潛規則,就是組成柵欄的字母一般不會太多。(一般不超過30個,也就是一、兩句話)
實現
一般比較常見的是2欄的柵欄密碼。
比如明文:THEREISACIPHER
兩個一組,得到:TH ER EI SA CI PH ER
先取出第一個字母:TEESCPE
再取出第二個字母:HRIAIHR
連在一起得到密文:TEESCPEHRIAIHR
而解密的時候,我們先把密文從中間分開,變為兩行:
T E E S C P E
H R I A I H R
再按上下上下的順序組合起來:
得到明文:THEREISACIPHER
代碼
函數(字符串,間隔)
def enFence(string, space):s = ""for i in range(0, space):for j in range(i, len(string), space):# 不能越界if j < len(string):s += string[j]print(s)def deFence(string, space):s = ""if len(string) % space == 0:key = len(string) // spaceelse:key = len(string) // space + 1# 小于間隔繼續for i in range(0, key):for j in range(i, len(string), key):# 不能越界if j < len(string):s += string[j]print(s)主函數
import Fenceif __name__ == "__main__":Fence.enFence("123456789", 3)Fence.deFence("147258369", 3)總結
這個也不是很常見,了解即可。
總結
以上是生活随笔為你收集整理的栅栏密码(Fence)——python解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数独解题器_python-2
- 下一篇: 【JAVA】java获取项目地址或tom