python之信息加密题目详解

1.贴题

题目来自PythonTip

信息加密

给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。这里将字母表的z和a相连,如果超过了z就回到了a。

例如a=”cagy”, b=3,

则输出 :fdjb

2.说明

考察点

  1. 英文字母与数字的转换
  2. 如果超过z的处理

3.参考代码

c = "" #定义空字符串c用于存放加密后的字符串
for j in a: #遍历字符串a中的每一个英文小写字母
if ord(j)+b < 124: #判断加密后是否不超过z
c += chr(ord(j)+b) #如果不超过则直接添加
else:
c += chr(ord(j)+b-26) #否则添加回到开头的字母
print(c) #打印加密后的字符串

4.其他写法

1.取余法

print ''.join([chr(ord('a')+(ord(x)+3-ord('a'))%26) for x in a])

2.构造法

def conve(a,b):
low_set='abcdefghijklmnopqrstuvwxyz'*2
res=''
for x in a:
res+=low_set[low_set.index(x)+b]
return res
a=conve(a,b)
print a

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

(0)

相关推荐

  • DES加密解密算法之python实现版(图文并茂)

    一.DSE算法背景介绍 1. DES的采用 1979年,美国银行协会批准使用 1980年,美国国家标准局(ANSI)赞同DES作为私人使用的标准,称之为DEA(ANSI X.392) 1983年,国际化标准组织ISO赞同DES作为国际标准,称之为DEA-1 该标准规定每五年审查一次,计划十年后采用新标准 最近的一次评估是在1994年1月,已决定1998年12月以后,DES将不再作为联邦加密标准. 2.DES算法特点 1) 分组加密算法: 以64位为分组.64位一组的明文从算法一端输入,64位密文

  • Python中使用pypdf2合并、分割、加密pdf文件的代码详解

    朋友需要对一个pdf文件进行分割,在网上查了查发现这个pypdf2可以完成这些操作,所以就研究了下这个库,并做一些记录.首先pypdf2是python3版本的,在之前的2版本有一个对应pypdf库. 可以使用pip直接安装: pip install pypdf2 官方文档: pythonhosted.org/PyPDF2/ 里面主要有这几个类: PdfFileReader . 该类主要提供了对pdf文件的读操作,其构造方法为: PdfFileReader(stream, strict=True,

  • Python3非对称加密算法RSA实例详解

    本文实例讲述了Python3非对称加密算法RSA.分享给大家供大家参考,具体如下: python3 可以使用 Crypto.PublicKey.RSA 和 rsa 生成公钥.私钥. 其中 python3.6 Crypto 库的安装方式请参考前面一篇<Python3对称加密算法AES.DES3> rsa 加解密的库使用 pip3 install rsa 就行了 C:\WINDOWS\system32>pip3 install rsa Collecting rsa   Downloading

  • python实现AES加密和解密

    一.前言 AES,高级加密标准(英语:Advanced Encryption Standard).是用来替代DES,目前比较流行的加密算法. 它是一种对称加密算法,与上一篇博文提到过的RSA非对称算法不同,AES只有一个密钥,这个密钥既用来加密,也用于解密. AES只是个基本算法,实现AES有几种模式,主要有ECB.CBC.CFB和OFB这几种(其实还有个CTR): 1.ECB模式(电子密码本模式:Electronic codebook) ECB是最简单的块密码加密模式,加密前根据加密块大小(如

  • python3.x实现base64加密和解密

    用python3.x实现base64加密和解密,供大家参考,具体内容如下 加密 base64_encrypt.py #!/usr/bin/python3 #encoding:utf-8 import base64 var = 1 while var==1: str_encrypt=input("输入要加密的字符串:\n"); base64_encrypt = base64.b64encode(str_encrypt.encode('utf-8')) print("BASE64

  • python实现AES加密与解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AES时要安装的是pycryptodome 模块 pip install pycryptodome python 在 Linux下使用AES时要安装的是pycrypto模块 pip install pycrypto CBC加密需要一个十六位的key(密钥)和一个十六位iv(偏移量) ECB加密不需要iv

  • python简单实现AES加密和解密

    本文实例为大家分享了python实现AES加密和解密的具体代码,供大家参考,具体内容如下 参考:python实现AES加密和解密 AES加密算法是一种对称加密算法, 他有一个密匙, 即用来加密, 也用来解密 import base64 from Crypto.Cipher import AES # 密钥(key), 密斯偏移量(iv) CBC模式加密 def AES_Encrypt(key, data): vi = '0102030405060708' pad = lambda s: s + (

  • python之信息加密题目详解

    1.贴题 题目来自PythonTip 信息加密 给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母.这里将字母表的z和a相连,如果超过了z就回到了a. 例如a="cagy", b=3, 则输出 :fdjb 2.说明 考察点 英文字母与数字的转换 如果超过z的处理 3.参考代码 c = "" #定义空字符串c用于存放加密后的字符串 for j in a: #遍历字符串a中的每一个英文小写字母 if o

  • python快速入门题目详解

    目录 九九乘法表 列表 元组(不可变序列) 集合 字符串 总结 九九乘法表 for i in range(1,10): for j in range(1,i + 1): print(str(j) + " * " + str(i) + " = " + str(i * j), end='\t') print() 列表 #列表插入操作 lis = [12,32,232,123,1234,1234,12345,12346,4563734,23452345] lis1 = l

  • 使用Python进行数独求解详解(一)

    目录 1.引言 2.描述数独九宫格 3.寻找下一个空子单元格 4.子单元格中设置值的合法性 5.实现回溯算法 6.性能表现 7.总结 1. 引言 本文为介绍流行的数独游戏的系列文章中的第一篇.更具体地说,我们如何构建一个脚本来解决数独难题,本文的重点在于介绍用于构建数独求解器的回溯算法. 数独这个名字的由来来自日语短语suuji wa dokushin ni kagiru,意思是“数字必须保持单一”.数独游戏的流行也源于其规则的简单性:数独游戏要求在 9 x 9 空间的网格上进行数字填写.在行和

  • 利用Python还原方阵游戏详解

    目录 一.前言 二.游戏规则 三.numpy模块 四.第一步:大循环and获取规格 五.第二步:初始化棋盘 六.第三步:标注矩阵功能(难) 七.第四步:查看标注矩阵功能 八.第五步:胜利侦测 九.第六步:查看行列信息(难) 十.第七步:重新开始功能 十一.得分与完善and完整代码 一.前言 写这篇文章的灵感来源于我玩游戏的时候(为了避免过不了审就不说是啥游戏了),看见一个大佬在游戏里面建造了“还原方阵游戏”,就感觉很牛掰,就想着python不是有矩阵吗,可不可以还原一下呢? 说干就干,我写的那个

  • MySQL数据库设计之利用Python操作Schema方法详解

    弓在箭要射出之前,低声对箭说道,"你的自由是我的".Schema如箭,弓似Python,选择Python,是Schema最大的自由.而自由应是一个能使自己变得更好的机会. Schema是什么? 不管我们做什么应用,只要和用户输入打交道,就有一个原则--永远不要相信用户的输入数据.意味着我们要对用户输入进行严格的验证,web开发时一般输入数据都以JSON形式发送到后端API,API要对输入数据做验证.一般我都是加很多判断,各种if,导致代码很丑陋,能不能有一种方式比较优雅的验证用户数据呢

  • Python之str操作方法(详解)

    1. str.format():使用"{}"占位符格式化字符串(占位符中的索引号形式和键值对形式可以混合使用). >>> string = 'python{}, django{}, tornado{}'.format(2.7, 'web', 'tornado') # 有多少个{}占位符就有多少个值与其对应,按照顺序"填"进字符串中 >>> string 'python2.7, djangoweb, tornadotornado'

  • 基于python时间处理方法(详解)

    在处理数据和进行机器学习的时候,遇到了大量需要处理的时间序列.比如说:数据库读取的str和time的转化,还有time的差值计算.总结一下python的时间处理方面的内容. 一.字符串和时间序列的转化 time.strptime():字符串=>时间序列 time.strftime():时间序列=>字符串 import time start = "2017-01-01" end = "2017-8-12" startTime = time.strptime

  • Python探索之SocketServer详解

    SocketServer,网络通信服务器,是Python标准库中的一个模块,其作用是创建网络服务器.SocketServer模块定义了一些类来处理诸如TCP.UDP.UNIX流和UNIX数据报之上的同步网络请求. SocketServer模块处理网络请求的功能,可以通过两个主要的类来实现:一个是服务器类,一个是请求处理类. 服务器类 处理通信问题,如监听一个套接字并接收连接等: 请求处理类 处理"协议"问题,如解释到来的数据.处理数据并把数据发回给客户端等. 这种实现将服务器的实现过程

  • python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的运行方向 # Ture:表示非空的量(String,tuple元组 .list.set.dictonary),所有非零的数字 # False:0,None .空的量 #逻辑表达式 可以包含 逻辑运算符 and or not if: ##################################

  • Python 调用Java实例详解

    Python 调用Java实例详解 前言: Python 对服务器端编程不如Java 所以这方面可能要调用Java代码 前提: Linux 环境  1 安装 jpype1 安装后测试代码: from jpype import * startJVM(getDefaultJVMPath(), "-ea") java.lang.System.out.println("Hello World") shutdownJVM() 2 调用非jdk的jar包, test.jar 包

随机推荐