我几周前就学会了加密技术。我想开发我的工具来加密和解密凯撒密码。但是当我解密时,它总是会返回奇怪的价值。示例:如果我加密“我的第一个工具加密”,它不会返回右解密“zl svefg gbby pelcgb”,而是“m_ fiXYZ ZUUl cX_VZU”,旋转13或我选择的另一个旋转。
Pizza
答案 0 :(得分:1)
问题在于,当你进行减法时,你会得到负值。然后,模运算符将给出错误的结果。您需要始终添加值。
正确的方法是:
t2 = ((((int)c - 97) - 13 + 26) % 26) + 97;
这将确保值始终为正值,模数可以按预期工作。