python实现移位加密和解密


Posted in Python onMarch 22, 2019

本文实例为大家分享了python实现移位加密和解密的具体代码,供大家参考,具体内容如下

代码很简单,就不多做解释啦。主要思路是将字符串转为Ascii码,将大小写字母分别移位密钥表示的位数,然后转回字符串。需要注意的是,当秘钥大于26的时候,我使用循环将其不断减去26,直到密钥等效小于26为止。

def encrypt():
  temp = raw_input("Please input your sentence: ")
  key = int(raw_input("Please input your key: "))
  listA = map(ord,temp)
  lens = len(listA)
  for i in range(lens):
    a = listA[i]
    if 65 <= a <= 90:
      a += key
      while a > 90:
        a -= 26
    elif 97 <= a <= 122:
      a += key
      while a > 122:
        a -= 26
    listA[i] = a
  listA = map(chr,listA)
  listA = ''.join(listA)
  print listA


def unencrypt():
  temp = raw_input("Please input your sentence: ")
  key = int(raw_input("Please input your key: "))
  listA = map(ord, temp)
  lens = len(listA)

  for i in range(lens):
    a = listA[i]
    if 65 <= a <= 90:
      a -= key
      while a < 65:
        a += 26
    elif 97 <= a <= 122:
      a -= key
      while a < 97:
        a += 26
    listA[i] = a
  listA = map(chr, listA)
  listA = ''.join(listA)
  print listA


a = int(raw_input("input 0 to encrypt and 1 to unencrypt"))

if a == 0:
  encrypt()
elif a == 1:
  unencrypt()

效果

python实现移位加密和解密

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
python下setuptools的安装详解及No module named setuptools的解决方法
Jul 06 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
Oct 29 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
python turtle库画一个方格和圆实例
Jun 27 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
python 实现矩阵按对角线打印
Nov 29 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
Python 添加文件注释和函数注释操作
Aug 09 Python
python实现可逆简单的加密算法
Mar 22 #Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 #Python
详解Python循环作用域与闭包
Mar 21 #Python
浅谈python之高阶函数和匿名函数
Mar 21 #Python
浅谈Python反射 &amp; 单例模式
Mar 21 #Python
详解Python中is和==的区别
Mar 21 #Python
浅谈Python的条件判断语句if/else语句
Mar 21 #Python
You might like
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
php实现每日签到功能
2018/11/29 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
动态加载js和css(外部文件)
2013/04/17 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python中处理时间的几种方法小结
2015/04/09 Python
Python生成器(Generator)详解
2015/04/13 Python
深入理解Python装饰器
2016/07/27 Python
python http接口自动化脚本详解
2018/01/02 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
秋天的雨教学反思
2014/04/27 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
期中考试后的感想
2015/08/07 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
python语言中pandas字符串分割str.split()函数
2022/08/05 Python