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 21 Python
python中尾递归用法实例详解
Apr 28 Python
Python正规则表达式学习指南
Aug 02 Python
python 基础教程之Map使用方法
Jan 17 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
Python实现多进程的四种方式
Feb 22 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
Dec 25 Python
python热力图实现的完整实例
Jun 25 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
example1.php
2006/10/09 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
Symfony查询方法实例小结
2017/06/28 PHP
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
Python Deque 模块使用详解
2014/07/04 Python
Python实现截屏的函数
2015/07/26 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python装饰器用法实例总结
2018/05/26 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
详解python做UI界面的方法
2019/02/27 Python
python集合能干吗
2020/07/19 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
某公司.Net方向面试题
2014/04/24 面试题
启动仪式策划方案
2014/06/14 职场文书
通讯稿格式及范文
2015/07/22 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
Nginx安装配置详解
2022/06/25 Servers
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers