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)

  

posted @ 2025-08-20 08:41  华腾智算  阅读(8)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL