换位加密法
换位加密法不是把字符替换成其他字符,而是搞乱信息符号的顺序,使原来的信息不可读。当然,搞乱顺序的方法有很多种,去破译也有对应的方法,我们这里介绍的是一种较为简单的换位:每一行x(密钥)个格子,从左往右依次填入文本,不够转行,打印的时候,从左往右,按列从上往下依次打印输出。
1.换位加密法的加密:
def main():
message = "Today is a sunny day"
key = 6
text = encrypt(key,message)
print(text+'|')
def encrypt(key,message):
returntext = ['']*key
for col in range(key):
pointer = col
while pointer < len(message):
# if message[pointer]==" ":
# returntext[col] += message[pointer-1]
# else:
returntext[col]+= message[pointer]
pointer+=key
return ''.join(returntext)
if __name__ == '__main__':
main()
2.换位加密法的解密
# 解密的步骤:(假设已经知道密钥的长度)
# 1.将消息的长度除以密钥并向上取整计算需要的列数
# <