python实现恺撒密码加密算法

本文介绍了恺撒密码加密算法的历史和原理,并提供了使用Python实现该算法的详细步骤。通过此算法,可以对英文字符进行替换加密,空格不参与加密。文章还给出了加密和解密的数学公式,以及如何处理用户输入并输出加密结果。
摘要由CSDN通过智能技术生成

描述

恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod 26‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

假设用户可能使用的输入包含大小写字母、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进

恺撒加密算法是一种简单的替换加密方法,通过将字母按照一定的位移进行替换实现加密和解密。 下面是使用Python编写的恺撒加密算法的程序实现: ```python def caesar_encrypt(plain_text, shift): cipher_text = "" for char in plain_text: if char.isalpha(): ascii_offset = 65 if char.isupper() else 97 shifted_char = chr((ord(char) - ascii_offset + shift) % 26 + ascii_offset) cipher_text += shifted_char else: cipher_text += char return cipher_text def caesar_decrypt(cipher_text, shift): plain_text = "" for char in cipher_text: if char.isalpha(): ascii_offset = 65 if char.isupper() else 97 shifted_char = chr((ord(char) - ascii_offset - shift) % 26 + ascii_offset) plain_text += shifted_char else: plain_text += char return plain_text text = "Hello, Caesar!" shift = 3 encrypted_text = caesar_encrypt(text, shift) print("加密结果:", encrypted_text) decrypted_text = caesar_decrypt(encrypted_text, shift) print("解密结果:", decrypted_text) ``` 在上述程序中,`caesar_encrypt`函数用于加密明文,`caesar_decrypt`函数用于解密密文。其中,`plain_text`表示明文字符串,`shift`表示位移大小。`caesar_encrypt`函数通过遍历明文中的每一个字符,将字母按照指定的位移进行替换,最终得到密文。`caesar_decrypt`函数则对密文进行反向操作,实现解密过程。 在程序末尾,我使用了一个简单的例子进行测试。首先,将明文字符串"Hello, Caesar!"使用位移大小为3的恺撒加密算法进行加密,得到密文。然后使用同样的位移大小进行解密,得到原始的明文。最终打印出加密和解密结果。 这段程序实现了恺撒加密算法的过程,能够对输入的明文进行加密和对密文进行解密。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值