我正在研究终止密码,在该密码中我将每个字符移动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
答案 0 :(得分:0)
您可以添加另一个26
来处理负值(在模数之前):
int decryptionCharIndex = (((i - 97 + 26 - 3) % 26)) + 97
// Subtract 'a' -----------------^
// Add another 26 to handle negatives-^
// Decrypt --------------------------------^