python实现凯撒密码加密解密

目录

一、信息加密应用发展阶段

二、凯撒密码程序

三、运行结果:


一、信息加密应用发展阶段

在密码学中,恺撒密码 (英语: Caesar cipher ) ,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最一为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系凯撒密码中,将字母表中的字母平移这个操作就是密码的算法

二、凯撒密码程序

复制代码
def encrypt(text, key):
    cipher_text = ""
    for char in text:
        if char.isalpha():
            if char.isupper():
                cipher_text += chr((ord(char) - 65 + key) % 26 + 65)  # 大写字母加密
            else:
                cipher_text += chr((ord(char) - 97 + key) % 26 + 97)  # 小写字母加密
        elif char.isdigit():
            cipher_text += chr((ord(char) - 48 + key) % 10 + 48)  # 数字加密
        else:
            cipher_text += char  # 特殊字符保持不变
    return cipher_text


def decrypt(cipher_text, key):
    plain_text = ""
    for char in cipher_text:
        if char.isalpha():
            if char.isupper():
                plain_text += chr((ord(char) - 65 - key) % 26 + 65)  # 大写字母解密
            else:
                plain_text += chr((ord(char) - 97 - key) % 26 + 97)  # 小写字母解密
        elif char.isdigit():
            plain_text += chr((ord(char) - 48 - key) % 10 + 48)  # 数字解密
        else:
            plain_text += char  # 特殊字符保持不变
    return plain_text


text = input("请输入明文或密文:")
key = int(input("请输入密钥:"))

cipher_text = encrypt(text, key)
plain_text = decrypt(cipher_text, key)

print("明文:", text)
print("密文:", cipher_text)
print("解密后:", plain_text)

三、运行结果:

相关推荐
景彡先生13 分钟前
Python pandas数据透视表(pivot_table)详解:从入门到实战,多维数据分析利器
python·数据分析·pandas
芝麻开门-新起点16 分钟前
flutter 生命周期管理:从 Widget 到 State 的完整解析
开发语言·javascript·ecmascript
Blossom.1181 小时前
把AI“编”进草垫:1KB决策树让宠物垫自己报「如厕记录」
java·人工智能·python·算法·决策树·机器学习·宠物
我先去打把游戏先1 小时前
ESP32开发指南(基于IDF):连接AWS,乐鑫官方esp-aws-iot-master例程实验、跑通
开发语言·笔记·单片机·物联网·学习·云计算·aws
极客数模1 小时前
2025年(第六届)“大湾区杯”粤港澳金融数学建模竞赛准备!严格遵循要求,拿下大奖!
大数据·python·数学建模·金融·分类·图论·boosting
逻极2 小时前
Rust数据类型(上):标量类型全解析
开发语言·后端·rust
倔强青铜三2 小时前
苦练Python第73天:玩转对象持久化,pickle模块极速入门
人工智能·python·面试
Zhangzy@2 小时前
Rust 编译优化选项
android·开发语言·rust
百锦再2 小时前
第2章 第一个Rust程序
java·开发语言·后端·rust·eclipse·tomcat·hibernate
Zhangzy@2 小时前
Rust 中的注释与文档注释实践指南
开发语言·后端·rust