使用Python实现凯撒密码加密与解密

1.凯撒密码概念

凯撒密码是一种经典的加密算法,通过将字母表中的每个字母向后(或向前)移动固定的位数来加密消息。这种方法虽然简单,但却是密码学中重要的基础。

2. 凯撒密码的原理

凯撒密码的工作原理。可以使用公式进行说明,例如:对于一个字母,使用公式 E(x) = (x + n) % 26 来加密,D(x) = (x - n) % 26 来解密。

3.用python实现凯撒密码加密和解密的过程

代码如下:

def caesar_encrypt(text1, shift):
    # 初始化一个空字符串用于存储加密后的文本
    text = ""

    # 遍历输入的每一个字符
    for char in text1:
        # 检查字符是否为字母
        if char.isalpha():
            # 计算实际的位移量(考虑位移可能超过字母表长度)
            mount = shift % 26

            # 将字符的Unicode码加上位移量
            code = ord(char) + mount

            # 处理小写字母的加密情况
            if char.islower():
                # 如果超出'z'的Unicode码,循环回到'a'
                if code > ord('z'):
                    code -= 26
                # 将加密后的字符添加到结果字符串中
                text += chr(code)
            # 处理大写字母的加密情况
            elif char.isupper():
                # 如果超出'Z'的Unicode码,循环回到'A'
                if code > ord('Z'):
                    code -= 26
                # 将加密后的字符添加到结果字符串中
                text += chr(code)
        else:
            # 非字母字符(如空格、标点符号)保持不变,直接添加到结果字符串中
            text += char

    # 返回加密后的文本
    return text


def caesar_decrypt(text1, shift):
    # 解密时,将位移量取反,调用加密函数
    return caesar_encrypt(text1, -shift)


# 测试代码
message = "Hello, World!"  # 原始消息
shift = 3  # 位移量

# 调用加密函数对消息进行加密
encrypted_message = caesar_encrypt(message, shift)

# 调用解密函数对加密后的消息进行解密
decrypted_message = caesar_decrypt(encrypted_message, shift)

# 打印原始消息、加密后的消息和解密后的消息
print(f"原文: {message}")
print(f"加密后: {encrypted_message}")
print(f"解密后: {decrypted_message}")

4.运行结果如下

总结

凯撒密码的加密与解密过程虽然实现比较简单,但可以有效的防止密码被轻易盗用,盗取密码的人不知道你向前或者向后移动的位数,就无法知道你的原密码,有一定的安全性.可以使用凯撒密码来保存密码等操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值