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'






  • 相关阅读:
    Exp5
    Exp4
    Exp3
    Exp02
    【TPM】tpm搭建基础指南
    20155316 Exp1 PC平台逆向破解(5)M
    个人早期写的一些组件
    关于spring @scope("prorotype") 和 @aspectj 一起用的问题
    ThreadLocal内存泄漏需要注意的
    Spring IoC 容器大概流程
  • 原文地址:https://www.cnblogs.com/iathena/p/02a269e22742471552accb1723a723e1.html
Copyright © 2011-2022 走看看