恺撒密码加解密程序

恺撒密码加解密程序,第1张

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

一、确定恺撒密码原理,用公式表示

二、子函数的确立

1.加密部分

2.解密部分

3.选择加密还是解密

三、确定各个子函数调用顺序以及完整代码

总结



前言

#随便写写,体验一下在csdn写文章#

第一篇blog为恺撒密码

一、确定恺撒密码原理,用公式表示 二、子函数的确立 1.加密部分

代码如下:

def Encryption():       #加密
    s = input("请输入需要加密的文字:\n")
    for i in s:
        c=''
        if 'a' <= i <= 'z':
            c += chr(ord('a') + (ord(i) - ord('a') + 3) % 26)
            print(c, end='')
        elif 'A' <= i <= 'Z':
            c += chr(ord('A') + (ord(i) - ord('A') + 3) % 26)
            print(c, end='')
        else:
            c += i
            print(c, end='')
2.解密部分

代码如下:

def Deciphering():      #解密
    c,s = input("请输入需要解密的文字:\n"),''         #变量定义及函数返回值与上述的加密函数略微不同,自己练手时为了了解而做的
    for i in c:
        if 'a' <= i <= 'z':
            s += chr(ord('a') + (ord(i) - ord('a') - 3) % 26)
        elif 'A' <= i <= 'Z':
            s += chr(ord('A') + (ord(i) - ord('A') - 3) % 26)
        else:
            s += i
    return print(s)
3.选择加密还是解密
def Determination(d):       #决定要对字符串进行加密还是解密
    if d == 0:
        return Encryption()
    elif d == 1:
        return Deciphering()
三、确定各个子函数调用顺序以及完整代码
def Determination(d):       #决定要对字符串进行加密还是解密
    if d == 0:
        return Encryption()
    elif d == 1:
        return Deciphering()

def Encryption():       #加密
    s = input("请输入需要加密的文字:\n")
    for i in s:
        c=''
        if 'a' <= i <= 'z':
            c += chr(ord('a') + (ord(i) - ord('a') + 3) % 26)
            print(c, end='')
        elif 'A' <= i <= 'Z':
            c += chr(ord('A') + (ord(i) - ord('A') + 3) % 26)
            print(c, end='')
        else:
            c += i
            print(c, end='')

def Deciphering():      #解密
    c,s = input("请输入需要解密的文字:\n"),''         #变量定义及函数返回值与上述的加密函数略微不同,自己练手时为了了解而做的
    for i in c:
        if 'a' <= i <= 'z':
            s += chr(ord('a') + (ord(i) - ord('a') - 3) % 26)
        elif 'A' <= i <= 'Z':
            s += chr(ord('A') + (ord(i) - ord('A') - 3) % 26)
        else:
            s += i
    return print(s)


def main():         #开启整个程序的入口,启动第一步调用Determination函数
    print("仅限加解密英文字母")
    sel = eval(input("请选择加密或者解密模式(输入0为加密模式,输入1为解密模式):"))
    Determination(sel)

main()

总结

注意定义变量时的位置与顺序;

核心两大环节——加密与解密最重要,可以单独拿出来调试;

决定加密、解密函数时注意返回值。

重点在于公式用程序语言表达。利用ord('a')或ord('A')限制26个字母的unicode编码码是从a(或A)字母开头的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/723404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存