凯撒解密奇怪的价值?

时间:2017-04-02 07:25:29

标签: c# encryption cryptography caesar-cipher

我几周前就学会了加密技术。我想开发我的工具来加密和解密凯撒密码。但是当我解密时,它总是会返回奇怪的价值。示例:如果我加密“我的第一个工具加密”,它不会返回右解密“zl svefg gbby pelcgb”,而是“m_ fiXYZ ZUUl cX_VZU”,旋转13或我选择的另一个旋转。

Pizza

1 个答案:

答案 0 :(得分:1)

问题在于,当你进行减法时,你会得到负值。然后,模运算符将给出错误的结果。您需要始终添加值。

正确的方法是:

t2 = ((((int)c - 97) - 13 + 26) % 26) + 97;

这将确保值始终为正值,模数可以按预期工作。