你有很多重复的代码。。。我们来解决这个问题。。在

首先只为Caesar密码定义2个函数。一个用于加密和解密字符,另一个用于整个字符串。在

正数shift是加密,负数shift是解密。在def cipher_character(character, shift):

# Don't convert anything other than english characters

if not character.isalpha():

return character

# declare some helping constants

alpha_length = 26

ascii_shift = ord('A') if character.isupper() else ord('a')

cipher_shift = shift % alpha_length

# shift down to 0..25 for a..z

shifted = ord(character) - ascii_shift

# rotate the letter and handle "wrap-around" for negatives and value >= 26

shifted = (shifted + cipher_shift + alpha_length) % alpha_length

# shift back up to english characters

return chr(shifted + ascii_shift)

# Rotate a string k-positions

def cipher_string(string, shift):

return ''.join(cipher_character(c, shift) for c in string)

接下来,提示用户输入

^{pr2}$

然后,对用户输入的选项进行一些if检查。在if option == '1' or option == '2':

message = input("Write your message: ")

if option == '1':

shift = int(input("Enter shift amount: "))

else:

shift = -1*int(input("Enter un-shift amount: "))

print(cipher_string(message, shift))

elif option == '3':

import sys

sys.exit(0)

把所有这些放在一个文件中,用和这里相同的缩进,你应该很好。在

运行示例如下$ python3 CeasarCipher.py

Hello there...

~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

¦ 1. Encrypt message ¦

¦ 2. Decrypt message ¦

¦ 3. Exit ¦

~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

1

Write your message: This is a test

Enter shift amount: 4

Xlmw mw e xiwx$ python3 CeasarCipher.py

Hello there...

~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

¦ 1. Encrypt message ¦

¦ 2. Decrypt message ¦

¦ 3. Exit ¦

~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

2

Write your message: Xlmw mw e xiwx

Enter un-shift amount: 4

This is a test

python中文版加密解密_python加密与解密相关推荐

  1. python代码加密解密_Python加密解密代码

    ''' 作业:中英文加密+解密 做题思路:先练习单独用ascii和汉字加密和解密,见作业后的encode_game和decode_game 爬取中文用的是BeautifulSoup 作业encode_ ...

  2. python 加密库_Python加密库入门

    python 加密库 密码学俱乐部的第一条规则是:永远不要自己发明密码系统. 密码学俱乐部的第二条规则是:永远不要自己实施密码系统:在密码系统的实施阶段以及设计中都会发现许多现实世界的漏洞. 一个有用 ...

  3. python 加密解密_python加密解密

    EncodeFile(python2.7 加密 ) # -*- coding: utf8 -*- import base64 import sys reload(sys) sys.setdefault ...

  4. python加密与解密_Python加密与解密,pythonCrypt,和

    from Crypto.Cipher import AES class DeAesCrypt: """ AES-128-CBC 加/解密, Padding ZERO模式 ...

  5. python hashlib解密_python 加密解密

    MD5 import hashlib c = raw_input('输入字符:') #python3为input b = hashlib.md5() b.update(c.encode(encodin ...

  6. python隐藏手机号码程序_Python网站手机号码解密的一种方法

    黄页88网站反爬措施对手机号进行了一些加密处理.这里介绍一下怎么解密手机号码的方法. 首先,我们看一下网站显示的手机号是这样的: 显示的手机号 使用ctrl c复制粘贴后变成了这样: 复制后的手机号码 ...

  7. python加密包_python加密包利用pycrypto包进行AES、DES、MD5等加密

    第三方Crypto包提供了较全面的加密算法,包括Cipher.Hash.Protocol.PublicKey.Singature.Util几个子模块,其中Cipher模块中有常用的AES.DES加密算 ...

  8. python的pyd文件_Python 加密之 生成pyd文件

    混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Python有py.pyc.pyw.pyo.pyd等文件格式. 其中,pyc是二进制文件.但很容易被反编译. pyw也不行,只是隐藏 ...

  9. python加密程序_Python加密程序

    展开全部 alp='abcdefghijklmnopqrstuvwxyz0123456789 ' def num2alp(c): a = alp[c] return(a) def alp2num(d) ...

最新文章

  1. android 6.0 获取手机号,头条小程序获取手机号码,回调未执行,导致无法获取手机号码...
  2. 海康sdk返回yv12
  3. ESP32 OTA升级框架
  4. linux 常用命令整理----链接文件
  5. DataFrame纵向合并
  6. linux5 多用户模式,centos7设置以多用户模式启动
  7. RHEL7安装ZABBIX 3.2
  8. 正则表达式就这么简单!
  9. synchronized工作原理剖析(一)
  10. 北大中文核心期刊目录2021年 无线电电子学、电信技术
  11. Axure 8.1.0.3381版安装包+注册码百度云盘下载
  12. oracle数据库行转列(含例子表结构及查询sql)
  13. ArcGIS 正高转换成椭球体高度
  14. 小储云商城v1.873源码(已更新)
  15. Android源码解析之Android系统启动整体流程分析
  16. 微机原理知识点总结9(8255A+8251A)
  17. 剪不断理还乱--C#重载/重写/覆盖
  18. 网易游戏测试工程师面试小记
  19. PS2接口协议及代码分析
  20. Spring MVC 参数校验

热门文章

  1. 如何玩转信用卡 银行不会告诉你的十个秘密
  2. 经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序
  3. 【Java】RPC与RMI框架
  4. web期末作业设计网页 HTML+CSS+JavaScript仿王者荣耀游戏新闻咨询(网页设计期末课程设计)...
  5. springboot导出excel(easyexcel和poi 列下拉及表格锁定)
  6. XENOGEARS,延续万年的的永恒之爱(引)
  7. 复化柯特斯matlab,基于牛顿‑柯特斯公式构造背景值的GM(1,1)模型预测方法与流程...
  8. Linux系统目录详解
  9. 交通事故预测——《RiskOracle: A Minute-level Citywide Traffic Accident Forecasting Framework》
  10. Java程序员的互联网转型之路