如何进行简单的加密以向字母表添加值?

How can I make a simple encryption of adding a value to the alphabet?

我想制作一个程序,使字母 ‘A’ to ‘B’‘Z’ to ‘A’。 基本上是一种通过增加 Unicode 值来加密消息的简单方法。
如何才能让我的程序有‘A’ to ‘Z’的Unicode值范围,这样当我要加密或解密时,它只有字母表?

好吧,如果您只关心 A-Z,您可以像这样编写一个简单的加密函数:

char encrypt(char letter){
    char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
    char next_letter = alphabet[(letter - 'A' + 1) % 26];
    return next_letter;
}

letter - 'A' 给我们字母数组中字母的位置,例如如果我们想得到 'C'、'C' - 'A' = 2 和 [=16 的位置=] 确实是 'C'.

为了得到下一个字母,我们偏移1,即letter - 'A' + 1

% 26 有助于确保我们在结束时循环回到开头,即当我们尝试加密 'Z' 时,例如
'Z' - 'A' + 1 = 26
26% 26 = 0.

System.out.println(encrypt('Z'));
>>> A

同样,您可以像这样编写一个解密函数:

char decrypt(char letter){
    char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
    char prev_letter = alphabet[26 - (letter - 'A' + 1)];
    return prev_letter;
}

要使用 python 版本完成@Ayush:

from string import ascii_uppercase

def encrypt(letter):
    return ascii_uppercase[(ascii_uppercase.index(letter) + 1) % 26]

def decrypt(letter):
    return ascii_uppercase[(ascii_uppercase.index(letter) - 1) % 26]

当然要确保letter是大写字母