停止密码解密不适用于前三个字符

时间:2019-03-31 19:05:09

标签: java

我正在研究终止密码,在该密码中我将每个字符移动3个位置

加密时

如果输入为'abc'

输出字符串应为'def'

应该将每个字符向右移动3次

int encryptionCharIndex=(((i-97+3)%26)) +97;

int decryptionCharIndex=(((i-97-3)%26)) +97;

但是解密显示的字母的前三个字符

错误的字符,即a之前的字符,

但是应该像

a = x
b = y
c = z

1 个答案:

答案 0 :(得分:0)

您可以添加另一个26来处理负值(在模数之前):

int decryptionCharIndex = (((i - 97 + 26 - 3) % 26)) + 97
// Subtract 'a' -----------------^
// Add another 26 to handle negatives-^
// Decrypt --------------------------------^