1条回答 默认 最新
- CSDN专家-黄老师 2021-06-09 18:10关注
import os #-*-coding:utf-8-*- #==================================================================# # 凯撒密码(caesar)是最早的代换密码,对称密码的一种 # # 算法:将每个字母用字母表中它之后的第k个字母(称作位移值)替代 # #==================================================================# def encryption(): str_raw = input("请输入明文:") k = int(input("请输入位移值:")) str_change = str_raw.lower() str_list = list(str_change) str_list_encry = str_list i = 0 while i < len(str_list): if ord(str_list[i]) < 123-k: str_list_encry[i] = chr(ord(str_list[i]) + k) else: str_list_encry[i] = chr(ord(str_list[i]) + k - 26) i = i+1 print ("加密结果为:"+"".join(str_list_encry)) def decryption(): str_raw = input("请输入密文:") k = int(input("请输入位移值:")) str_change = str_raw.lower() str_list = list(str_change) str_list_decry = str_list i = 0 while i < len(str_list): if ord(str_list[i]) >= 97+k: str_list_decry[i] = chr(ord(str_list[i]) - k) else: str_list_decry[i] = chr(ord(str_list[i]) + 26 - k) i = i+1 print ("解密结果为:"+"".join(str_list_decry)) while True: print (u"1. 加密") print (u"2. 解密") choice = input("请选择:") if choice == "1": encryption() elif choice == "2": decryption() else: print (u"您的输入有误!")
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 c51单片机控制步进电机
- ¥20 Visual studio无法检测到设备
- ¥30 vue 页面窗口放大或者缩小元素会变化
- ¥15 questasim仿真报错
- ¥15 寻找电脑攻防的导师,有问题请教一下。
- ¥20 微信同是win11,我的电脑安装不了pageoffice,一直无法打开
- ¥15 这个界面我通过postman请求不到,但是通过浏览器可以正常访问
- ¥15 wpf程序使用过程中异常奔溃
- ¥15 多目标优化算法在与其他算法数据对比结果判断
- ¥15 CPTN和EAST,主干网络是VGG16,请问在ICDAR2015数据集上训练之后,CPTN和EAST模型的大小为多少