Python编写程序,利用“凯撒密码”方案,实现对用户输入文字的加密操作

本文介绍了一款基于凯撒密码的加密程序,该程序能够处理用户输入的字母数字组合,并根据指定的偏移量进行加密。文章详细解释了凯撒密码的工作原理及其实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现该程序本人进行很多次的改进测试,终于达到了理想的预期,该程序对用户输入的字符串进行凯撒密码方案加密,用户输入的必须是数字字母的组合或者纯数字或者纯字母,其他输入均为非法输入。

凯撒密码的原理:

凯撒密码(英语:Caesar cipher),是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中所有字母都在字母表向后(或向前)按照固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将替换成D、B变成E,以此类推,X被替换为A, Y被替换为B, Z被替换为C,数字同理。(如下图)

该程序代码:

'''
编写程序,利用“凯撒密码”方案,实现对用户输入文字的加密操作。

凯撒密码(英语:Caesar cipher),是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中所有字母都在字母
表向后(或向前)按照固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将替换成D、B变成E,以此类推。
'''
while True:
    user_letter = input("Please input an English letter: ")//输入相关明文信息
    secert_number = input("Please input a security number: ")//输入偏移量
    try:
        if user_letter.isalnum() == True and secert_number.isdigit() == True:
//利用isalnum来判断用户输入的是否为字母数字组合,偏移量secert_number必须是纯数字
            passwd_letter = []
            for i in user_letter:
                if 'a'<=i<='z':
                    pwd = chr(ord('a') + ((ord(i) - ord('a')) + int(secert_number))%26)
                elif 'A'<=i<='Z':
                    pwd = chr(ord('A') + ((ord(i) - ord('A')) + int(secert_number))%26)
                else:
                    pwd = chr(ord('0') + ((ord(i) - ord('0')) + int(secert_number))%10)

                passwd_letter.append(pwd)
        CaesarCipherer = "".join(passwd_letter)
        print(user_letter,"==>",CaesarCipherer)
        break
    except:
        print("Error! Please input again!")

 上述代码中:chr(ord('a') + ((ord(i) - ord('a')) + int(secert_number))%26)这个我进行一下说明:设‘a’的ASCII码为P,从for循环中获取用户的i的ASCII码为C,偏移量为X,加密后的单个字符的ASCII码为Y,字母大写有26个,小写有26个,数字有10个,所以进行凯撒密码加密的单个字符的ASCII码的关系如下:

Y = P+(C-P)+X%26    // %为取余操作

数字的加密:

Y = P+(C-P)+X%10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿豪学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值