凯撒密码
原理:
通过把字母移动一定的位数来实现加解密明文中的所有字母从字母表向后(或向前)按照一个固定步长进行偏移后被替换成密文。
例如:
当步长为3时,A被替换成D,B被替换成E,依此类推,X替换成A本加解密实现只针对英文字母(包括大小写)。
# -*- coding: utf-8 -*- """ Created on Sat Jan 30 13:39:20 2021 @author: 叶照清 """ from string import ascii_lowercase lows=ascii_lowercase ups=lows.upper() def kasa(s,k,ok=True): ''' 凯撒加密 参数: s:需加密的字符串 k:密码 ok='other'就变成解密了 ''' k=k%len(lows) #密码取mod before=lows+ups after = lows[k:]+lows[:k]+ups[k:]+ups[:k] if ok==True: table=''.maketrans(before,after) else: table=''.maketrans(after,before) return s.translate(table) s='''Created on Sat Jan 30 13:39:20 2021 @author: yezq''' k=12334343 sa=kasa(s,k) print('原文:\n',s) print('加密:\n',sa) sb=kasa(sa,k,None) print('解密:\n',sb)
>>> ========================= RESTART: E:\work\kasa\kasa.py ======================== 原文: Created on Sat Jan 30 13:39:20 2021 @author: yezq 加密: Xmzvozy ji Nvo Evi 30 13:39:20 2021 @vpocjm: tzul 解密: Created on Sat Jan 30 13:39:20 2021 @author: yezq >>>
12-11
1503
09-03
6万+
03-20
2115
03-18
4306