文档章节

使用Python内建chr, ord实现的简单的加/解密

alazyer
 alazyer
发布于 2014/03/25 20:54
字数 301
阅读 2037
收藏 0

###Python中有两个个内建方法,用于解决0-255与相应ascii码转换:

  1. chr() Return a string of one character with ordinal i; 0 <= i < 256. 也就是,返回代表整数范围内0-255对应的字符。
  2. ord() Return the integer ordinal of a one-character string. 与chr刚好相反,返回一个字符对应的整数。
code = uncode = {}
for c in (65, 97):
	for i in range(26):
		code[chr(i+c)] = chr((i+8) % 26 +c)
                uncode[chr(i+c)] = chr((i+18) % 26 +c)
s = 'alazyer'
print ''.join([code.get(c) for c in s]) # output: itihgmz
print ''.join([uncode.get(c) for c in 'itihgmz']) # output: alazyer

方法很简单,在循环中,将26个英文字符的大小写,向后移动了8个字符作为密码方法code中, 向后移动18个作为解密密码方法uncode中。如果想加密一个字符串的话,使用code.get(c); 解密的话使用uncode.get(c)。 在Python的this.py中有这样一句:d.get(c, c), 当c不在加密密码中时,使用本身代替,这样实现了对标点符号等的支持。 s = "I love China!" print ''.join([code.get(c, c) for c in s]) # output: Q twdm Kpqvi! print ''.join([code.get(c, c) for c in 'Q twdm Kpqvi!']) # output: I love China!

© 著作权归作者所有

共有 人打赏支持
alazyer
粉丝 4
博文 68
码字总数 35105
作品 0
程序员
私信 提问
浅谈Python内置函数chr、ord

简介 在Python2.x 版本中可以用来字符类型转换的函数除了chr和ord,还有unichr,在python3.x只用chr()就可以了,这里主要讲下chr和ord ord是unicode ordinal的缩写,即编号; chr是character...

致Great
05/30
0
0
python chr()、unichr()和ord()

chr()、unichr()和ord() chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。unichr()跟它一样,只不过返回的是Unicode字符,这个从Python 2.0才加入的u...

索隆
2012/04/23
0
0
python模块介绍- binascii:二进制和ASCII互转 以及其他进制转换

python模块介绍- binascii:二进制和ASCII互转以及其他进制转换 2012-08-01磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.com qq 37391319 博客: http://blog.csdn.net/oy...

长平狐
2013/12/25
2.7K
0
几道Python小程序练习的多种解法,做出来就表示Python入门了!

下面由小编开始设题解题: python斐波那契数列 关于Python编程练习题和答案,斐波那契数列应用的示例。引用百度关于斐波那契数列的介绍,大家先简单来的了解下,什么是斐波那契数列? 斐波那...

Python新世界
07/21
0
0
廖雪峰Python教程学习笔记

Python基础 字符串和编码 字符编码 计算机在读取和编辑、保存、传输时文本时使用UTF-8编码,在内存中表示时使用Unicode编码 UTF-8编码使用一个字节表示英文字符,使用2-6字节表示其他语言字...

OSC_fly
08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
15分钟前
0
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
18分钟前
1
0
mac 下 mysql 8.0.13 安装并记录遇到的问题 以便以后查看

安装 官网mysql 下载地址 安装过程 省去 安装好之后 下载navicat 错误1 链接 遇到 mysql 2003 - Can't connect to MySQL server 错误, 解决方案 重启mysql 服务 #错误2 ERROR 1045: Acces...

杭州-IT攻城狮
昨天
5
0

中国龙-扬科
昨天
1
0
[Spring4.x]基于spring4.x纯注解的Web工程搭建

在前文中已经说明了如何基于 Spring4.x+ 版本开发纯注解的非web项目,链接如下: https://my.oschina.net/morpheusWB/blog/2985600 本文则主要说明,如何在Web项目中,"基于spring纯注解方式...

morpheusWB
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部