2

与此问题有关:Java 中的 ROT-13 函数?

在java中解码rot13的代码是什么?我只是简单地反转迹象吗?

以下是将字符串编码为 rot13 的代码:

public class Rot13 { 

    public static void main(String[] args) {
        String s = args[0];
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if       (c >= 'a' && c <= 'm') c += 13;
            else if  (c >= 'A' && c <= 'M') c += 13;
            else if  (c >= 'n' && c <= 'z') c -= 13;
            else if  (c >= 'N' && c <= 'Z') c -= 13;
            System.out.print(c);
        }
        System.out.println();
    }

}
4

2 回答 2

8

你不要颠倒迹象。解码方法与编码方法相同。

例如:“a”被编码为“n”。如果你“编码”'n',它会被解码回'a'。

于 2014-08-27T21:48:05.667 回答
0

因为在基本拉丁字母中有26个字母(2×13),ROT13是它自己的逆;也就是说,为了撤销ROT13,应用相同的算法,因此可以使用相同的动作进行编码和解码。该算法几乎不提供加密安全性,并且经常被引用为弱加密的典型示例

维基百科的文章很好地解释了它

于 2017-05-29T13:48:19.237 回答