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)

浙公网安备 33010602011771号