2014-08-27 77 views
2

與此問題有關:ROT-13 function in java?java中rot13解碼

在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(); 
    } 

} 
+0

「因爲有26個字母(2×13)在基本拉丁字母, ROT13是它自己的反轉;也就是說,爲了撤消ROT13,應用相同的算法,因此可以使用相同的動作進行編碼和解碼。「維基百科。 – 2015-12-17 17:14:21

+0

是的,看到了@讓 - 保羅。這個很酷。我只是認爲WP條目很有幫助。 – 2015-12-17 17:18:55

回答

7

你沒有扭轉的跡象。解碼方法與編碼方法相同。

例如:'a'被編碼爲'n'。如果您對「n」進行「編碼」,則會將其解碼爲「a」。

0

因爲在基本拉丁字母表中有26個字母(2×13),所以ROT13是它自己的逆;也就是說,爲了撤銷ROT13,應用相同的算法,因此可以使用相同的動作進行編碼和解碼。該算法提供幾乎沒有密碼的安全性,並經常被作爲弱加密一個典型的例子

wikipedia文章解釋了它相當不錯