python加密与解密
import re firstASCII=ord('a') N=26 def enChar(x,key): xid=ord(x)-firstASCII yid=(xid+key)%N y=chr(firstASCII+yid) return y def Caesar(text,key): return ''.join([enChar(x,key) for x in text]) def check(text,key): return ''.join([enChar(x,-key) for x in text]) def CaesarX(text,key): result='' for x in text: if 'a'<=x<='z': x=enChar(x,key) result+=x return result+x text='attack tonight!' key=200 print(Caesar(text,key))
相对标准的写法
# -*- coding: utf-8 -*- import sys firstASCII = 0 N = 65535 # 根据 Python 版本选择合适的字符函数 if sys.version_info[0] == 2: # Python 2 chr_func = unichr else: # Python 3 chr_func = chr def enChar(x, key): xid = ord(x) - firstASCII yid = (xid + key) % N y = chr_func(firstASCII + yid) return y def Caesar(text, key): return ''.join([enChar(x, key) for x in text]) def check(text, key): return ''.join([enChar(x, -key) for x in text]) def CaesarX(text, key): result = '' for x in text: if 0 <= ord(x) < N: x = enChar(x, key) result += x return result text = u'今晚发动攻击,代号:python!' # 使用 Unicode 字符串 key = 1234 # 加密文本 encrypted_text = CaesarX(text, key) print(u"加密后的文本: " + encrypted_text) # 解密文本 decrypted_text = CaesarX(encrypted_text, -key) print(u"解密后的文本: " + decrypted_text)