#一目了然版
def rot13(s): result = "" for v in s: c = ord(v) if c >= ord('a') and c <= ord('z'): if c > ord('m'): c -= 13 else: c += 13 elif c >= ord('A') and c <= ord('Z'): if c > ord('M'): c -= 13 else: c += 13 result += chr(c) return result
#小写字母(不完全版)
def rot13(s): chars = "abcdefghijklmnopqrstuvwxyz" trans = chars[13:] + chars[:13] rot_char = lambda c: trans[chars.find(c)] if chars.find(c)>-1 else c return ''.join( rot_char(c) for c in s )
import string def make_rot_n(n): lc = string.lowercase trans = string.maketrans(lc, lc[n:] + lc[:n]) return lambda s: string.translate(s, trans) rot13 = make_rot_n(13) print rot13('gandalf')
d = {} for c in (65, 97): for i in range(26): d[chr(i+c)] = chr((i+13) % 26 + c) print "".join([d.get(c, c) for c in s])
#大小写字母
def rot13(s): rot = lambda x:chr(ord(x)+13) if chr(ord(x.lower())+13).isalpha()==True else chr(ord(x)-13) s = [rot(i) for i in filter(lambda x:x!=',', map(str,s))] return ''.join(s)
def rot13(s): chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" trans = chars[26:] + chars[:26] rot_char = lambda c: trans[chars.find(c)] if chars.find(c) > -1 else c return ''.join(rot_char(c) for c in s)
#zip/map/join
def rot13(string): CLEAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' ROT13 = 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm' TABLE = {x: y for x, y in zip(CLEAR, ROT13)} return ''.join(map(lambda x: TABLE.get(x, x), string))
#yield
def rot13(clear): CLEAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' ROT13 = 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm' TABLE = {x: y for x, y in zip(CLEAR, ROT13)} for c in clear: yield TABLE.get(c, c)
#自定义Offset
def rot13(s, OffSet=13): def encodeCh(ch): f = lambda x: chr((ord(ch)-x+OffSet) % 26 + x) return f(97) if ch.islower() else (f(65) if ch.isupper() else ch) return ''.join(encodeCh(c) for c in s) s = 'Hello!' print rot13(s) # Uryyb! print rot13(rot13(s)) # Hello! print rot13(s, 26) # Hello!
《“用Python实现的rot13编解码”》 有 1 条评论
Decodify – 自动判断编码方式并解码的工具
https://github.com/UltimateHackers/Decodify
`
支持的编码/加密方式:
Caesar ciphers
Binary
Hex
Decimal
Base64
URL
FromChar
MD5
SHA1
SHA2
`