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实现的简单发送邮件脚本分享
Nov 07 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
Random 在 Python 中的使用方法
Aug 09 Python
Python 编程速成(推荐)
Apr 15 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
python实现126邮箱发送邮件
May 20 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
python用Configobj模块读取配置文件
Sep 26 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
如何使用pdb进行Python调试
Jun 30 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
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
thinkPHP查询方式小结
2016/01/09 PHP
asp批量修改记录的代码
2008/06/25 Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
node使用request请求的方法
2019/12/20 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
python动态监控日志内容的示例
2014/02/16 Python
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
Python装饰器结合递归原理解析
2020/07/02 Python
syb养殖创业计划书
2014/01/09 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
详解Java实践之适配器模式
2021/06/18 Java/Android
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android