"""
@description: 凯撒密码
@time: 2021-12-03
@version: python3.9.6
"""
def CaesarEncode(crypto_str, shift):
"""
凯撒加密
:param crypto_str: 要加密的明文
:param shift: 偏移量
:return: 返回加密后的密文
"""
result = ""
num = int(shift)
for word in crypto_str:
ch = ord(word)
if ord('a') <= ch <= ord('z'):
ch = (ch + num) % 26
if ord('A') <= ch <= ord('Z'):
ch = (ch + num) % 26
result += chr(ch)
return result
def CaesarDecode(crypto_str, shift):
"""
凯撒解密
:param crypto_str: 要解密的密文
:param shift: 偏移量
:return: 返回解密后问明文
"""
result = ""
num = int(shift)
for word in crypto_str:
ch = ord(word)
if ord('a') <= ch <= ord('z'):
ch -= num
if ch < ord('a'):
ch += 26
if ord('A') <= ch <= ord('Z'):
ch -= num
if ch < ord('A'):
ch += 26
result += chr(ch)
return result
if __name__ == '__main__':
shift = 1 # 偏移量
str = "oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz}" # 文本
#解密
for i in range(1, 26):
print(i, ":", CaesarDecode(str, shift))
str = CaesarDecode(str, shift)
#加密
# print(CaesarEncode(str,shift))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?