<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是:通過把**字母移動一定的位數**來實現加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。例如,當偏移量是 3 的時候,所有的字母 A 將被替換成 D,B 變成 E,由此可見,位數就是凱撒密碼加密和解密的密鑰。 例如:字符串”ABC”的每個字符都右移 3 位則變成”DEF”,解密的時候”DEF”的每個字符左移 3 位即能還原,如下圖所示: ![](https://box.kancloud.cn/c1219fe09be03a46b44a4744dca19bcc_740x334.jpg) ~~~ 1. package com; 2. 3. public class KaiSaEncrypted { 4. 5. private static final String str = "hello meinv!"; 6. private static final int pwd = 6; 7. public static void main(String[] args) { 8. String encrypte = encrypte(str); 9. System.out.println("加密后的文本:"+encrypte); 10. String decrypted = decrypted(encrypte); 11. System.out.println("解密后的文本:"+decrypted); 12. } 13. 14. public static String encrypte(String original){ 15. char[] charArray = str.toCharArray(); 16. for (int i = 0; i < charArray.length; i++) { 17. charArray[i]+= pwd; 18. } 19. return new String(charArray); 20. } 21. 22. public static String decrypted(String original){ 23. char[] charArray = original.toCharArray(); 24. for (int i = 0; i < charArray.length; i++) { 25. charArray[i]-= pwd; 26. } 27. return new String(charArray); 28. } 29. } ~~~ ![](https://box.kancloud.cn/3664ecd826172bb9ed0d982050d9591c_909x603.jpg) 1. 破解凱撒密碼:頻率分析法 凱撒密碼加密強度太低,只需要用頻度分析法即可破解。 在任何一種書面語言中,不同的字母或字母組合出現的頻率各不相同。而且,對于以這種語言書寫的 任意一段文本,都具有大致相同的特征字母分布。比如,在英語中,字母 E 出現的頻率很高,而 X 則出現 得較少。 英語文本中典型的字母分布情況如下圖所示: ![](https://box.kancloud.cn/3e280259e56c91c089005aadfebf7539_763x611.jpg) 破解流程: 1,統計密文里出現次數最多的字符,例如出現次數最多的字符是是’h’。 2,計算字符’h’到’e’的偏移量,值為 3,則表示原文偏移了 3 個位置。 3,將密文所有字符恢復偏移 3 個位置。 注意點:統計密文里出現次數最多的字符時,需多統計幾個備選,因為最多的可能是空格或者其他字符,例如下圖出現次數最多的字符'#'是空格加密后的字符,‘h'才是'e’偏移后的值。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看