栅栏加密
原理
将所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。
例子
明文:THE LONGEST DAY MUST HAVE AN END
加密:
1、把将要传递的信息中的字母交替排成上下两行。
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
2、 密文:
将下面一行字母排在上面一行的后边。
TEOGSDYUTAENN HLNETAMSHVAED
解密:
先将密文分为两行
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再按上下上下的顺序组合成一句话
明文:THE LONGEST DAY MUST HAVE AN END
python脚本
# 栅栏加密
def crypto():
plain = input("输入明文:")
n = eval(input("输入分组字数:"))
res = ''
for i in range(n):
for j in range(int(len(plain) / n + 1)):
try:
res += plain[j * n + i]
except:
pass
print(res)
def decrypto():
plain = input('输入密文:')
for n in range(2, len(plain)-1):
res = ''
for i in range(n):
for j in range(int(plain.__len__() / n + 1)):
try:
res += plain[j * n + i]
except:
pass
print(res)
文章评论