translate()函数及ROT13加密

translate()

以下实例展示了 translate()函数的使用方法:

#!/usr/bin/pythonfrom string import maketrans   # 引用 maketrans 函数。

intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)

str = "this is string example....wow!!!";print str.translate(trantab);

以上实例输出结果如下:

th3s 3s str3ng 2x1mpl2....w4w!!!

以上实例去除字符串中的 'x' 和 'm' 字符:

#!/usr/bin/pythonfrom string import maketrans   # Required to call maketrans function.

intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)

str = "this is string example....wow!!!";print str.translate(trantab, 'xm');

以上实例输出结果:

th3s 3s str3ng 21pl2....w4w!!!

ROT13

套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可[2]A换成NB换成O、依此类推到M换成Z,然后序列反转:N换成AO换成B、最后Z换成M

   只有这些出现在英文字母里头的字元受影响;数字符号空白字元以及所有其他字元都不变。因为只有在英文字母表里头只有26个,并且26 = 2 × 13,ROT13函数是它自己的逆反[2]

对任何字元  x:  {\displaystyle {\mbox{ROT}}_{13}({\mbox{ROT}}_{13}(x))={\mbox{ROT}}_{26}(x)=x} {\mbox{ROT}}_{​{13}}({\mbox{ROT}}_{​{13}}(x))={\mbox{ROT}}_{​{26}}(x)=x

换句话说,两个连续的ROT13应用函式会回复原始文字(在数学上,这有时称之为对合(involution);在密码学上,这叫做对等加密(reciprocal cipher))。

转换可以利用查找表完成,如下例所示:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm
以上来源:  https://zh.wikipedia.org/wiki/ROT13
示例:
 
    
  1. import this
  2. trantab = maketrans(str(this.d.values()),str(this.d.keys()))
  3. #trantab = maketrans(str(this.d.keys()),str(this.d.values()))
  4. z = 'fuck daipei'
  5. z.translate(trantab)
 
     
  1. Out[91]: 'shpx qnvcrv'






转载于:https://www.cnblogs.com/iathena/p/02a269e22742471552accb1723a723e1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值