惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
B
Blog
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 聂微东
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
U
Unit 42
J
Java Code Geeks
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC

博客园 - 华腾智算

逐个注释 前端学习全景图 · HTML5 + CSS3 全部知识点 前端学习全景图 从零实现跨平台 3D 引擎架构方案 2026年的跨平台 GUI 开发趋势 杀毒 现代图形学的本质 C++快速掌握之一 rust控制流-各种循环 rust控制流 rust函数和注释 rust复核类型--元组tuple和数组 rust的类型 rust常量和变量 rust正确的猜数游戏 rust猜数游戏2 rust猜数游戏 字体选型 20260810代码 理解图形学之一入门 Rust 标准库 `std` 中最常用、最核心的模块和类型 Rust 标准库std RUST教程 rust理解一 rust多文件组织 - 华腾智算 Cargo.toml Rust 语言教程 C#常用 C#第六天异常 通俗易懂解释编程-适用于任何编程语言
python加密与解密
华腾智算 · 2025-08-20 · via 博客园 - 华腾智算
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)