如何进行简单的加密以向字母表添加值?
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
是大写字母
我想制作一个程序,使字母 ‘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
是大写字母