zoukankan      html  css  js  c++  java
  • 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: 

    换句话说,两个连续的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'






  • 相关阅读:
    git命令总结
    Junit
    zookeeper--概述
    NIO与Socket
    分区分表
    ThreadLocal
    垃圾收集器
    垃圾收集算法
    主从复制
    Redis--集群
  • 原文地址:https://www.cnblogs.com/iathena/p/02a269e22742471552accb1723a723e1.html
Copyright © 2011-2022 走看看