2301_79832906 2023-11-11 15:58 采纳率: 100%
浏览 15
已结题

完整的凯撒加密/解密算法

用函数实现以下功能-加密函数为 code(string,bias)
功能:
可以实现小写字母=(明文+N)%26、大写字母=(明文+N)%26以及数字=(明文+N)%26的加密,小写加密后依然是小写,大写加密依然是大写;
加密系数可以临时设定;

给出解密函数decode(string,bias)
功能:与加密功能相反

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-11 19:07
    关注

    【以下回答由 GPT 生成】

    def code(string, bias):
        """
        函数将字符串进行凯撒加密,并返回加密后的结果。
    
        参数:
        - string: 待加密的字符串
        - bias: 加密系数
    
        返回值:
        加密后的字符串,小写字母加密后仍然是小写,大写字母加密后仍然是大写,数字加密后仍然是数字
    
        示例:
        输入: code("hello world", 3)
        输出: "khoor zruog"
        """
        encrypted_string = ""
        for char in string:
            if char.isalpha():
                shift = 97 if char.islower() else 65
                encrypted_string += chr((ord(char) - shift + bias) % 26 + shift)  # 对字符进行位移
            elif char.isdigit():
                encrypted_string += chr((ord(char) - 48 + bias) % 10 + 48)  # 对数字进行位移
            else:
                encrypted_string += char  # 其他非字母数字字符保持不变
        return encrypted_string
    
    
    def decode(string, bias):
        """
        函数将凯撒加密后的字符串进行解密,并返回解密后的结果。
    
        参数:
        - string: 待解密的字符串
        - bias: 加密系数
    
        返回值:
        解密后的字符串
    
        示例:
        输入: decode("khoor zruog", 3)
        输出: "hello world"
        """
        decrypted_string = ""
        for char in string:
            if char.isalpha():
                shift = 97 if char.islower() else 65
                decrypted_string += chr((ord(char) - shift - bias) % 26 + shift)  # 对字符进行逆位移
            elif char.isdigit():
                decrypted_string += chr((ord(char) - 48 - bias) % 10 + 48)  # 对数字进行逆位移
            else:
                decrypted_string += char  # 其他非字母数字字符保持不变
        return decrypted_string
    

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月16日
  • 已采纳回答 11月12日
  • 创建了问题 11月11日