简单字符加密的这两种“方法”之间的区别

时间:2015-06-13 11:04:26

标签: java

我无法理解这种加密字符串中字符的简单方法。所以这是方法:

encryptedChar = (char) (’A’ + (originalChar -’A’ + offset) % 26);

我不理解'A' - 'A'的必要性,因为它们只是取消了。它背后的原因是什么?

为什么我不应该只使用以下方法?

encryptedChar = (char) ((originalChar + offset) % 26);

不应该完全一样吗?

1 个答案:

答案 0 :(得分:2)

encryptedChar = (char) ('A' + (originalChar -'A' + offset) % 26);

两个'A'不会相互抵消,因为第二个'A'在表达式内部,即模数运算符的操作数。

  • 'A' + (originalChar -'A' + offset) % 26 - 此处每个字母都会映射到不同的字母。

  • ((originalChar + offset) % 26) - 此处每个字母都映射到一个int值介于0到25之间的字符。