为数组

时间:2016-12-30 22:10:17

标签: python arrays python-3.x

我正在创建一个非常简单的加密算法,我将一个单词的每个字母转换为ascii,将ascii值放入一个数组中,然后在每个值上添加一个数字。然后将ascii转换回字母,然后输出新的加密字。被称为ceaser密码。

但我无法弄清楚如何将键号添加到数组的每个元素。

2 个答案:

答案 0 :(得分:0)

尝试在线查看解决方案:

Caesar Cipher Function in Python

https://inventwithpython.com/chapter14.html

这些链接将为您提供明确的问题解答。

答案 1 :(得分:0)

正如其他人所说,在提出这样的问题时,请先发布代码尝试。清晰的输入/输出和任何相关的堆栈跟踪错误有助于人们更好地回答您的问题。

话虽这么说,我写了一个简单的ceaser密码加密方法,它根据给定的密钥向右移动。这通过使用内置方法ord()将字符串的字符转换为其数字ascii表示来实现。然后,我们将shift值添加到此表示中,以将值向右移动给定量。然后使用chr()隐藏回字符如果shifted_value超过'z',我们会考虑回到字母表开头。

def ceaser_cipher_encryption(string, shift):
    alpha_limit = 26
    encrypted_msg = []
    for index, character in enumerate(string.lower()):
        isUpperCharacter = string[index].isupper()
        shifted_value = ord(character) + shift
        if shifted_value > ord('z'):
            encrypted_msg.append(chr(shifted_value - alpha_limit))
        else: 
            encrypted_msg.append(chr(shifted_value))
        if isUpperCharacter:
            encrypted_msg[index] = encrypted_msg[index].upper()
    return ''.join(encrypted_msg)

示例输出:

>>> ceaser_cipher_encryption("HelloWorld", 5)
MjqqtBtwqi