python实现移位加密和解密

yipeiwu_com6年前Python基础

本文实例为大家分享了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创建日历的方法,与以往不同的是,本文实例不使用Python提供的calendar实现,相信对大家的Python程序设计有一定的借鉴价值。 此程序在windows下测...

python简单实现基于SSL的IRC bot实例

本文实例讲述了python简单实现基于SSL的 IRC bot。分享给大家供大家参考。具体如下: #!/usr/bin/python # -*- coding: utf8 -*- i...

Python绘制3D图形

Python绘制3D图形

3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行3D图形的绘制,包括3D散点、3D表面、3D轮廓、3D直线(曲线)以及3...

详解PyCharm安装MicroPython插件的教程

详解PyCharm安装MicroPython插件的教程

前言 PyCharm可以说是当今最流行的一款Python IDE了,大部分购买TPYBoard的小伙伴都会使用PyCharm编写MicroPython的程序。遗憾的是,只是把PyChar...

Python线程详解

Python线程详解

1. 线程基础 1.1. 线程状态 线程有5种状态,状态转换的过程如下图所示: 1.2. 线程同步(锁) 多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享...