使用 Javascript 中的开关代码解决 Caesers 密码

Solve Caesers Cipher Using a switch code in Javascript

您可能熟悉凯撒密码(see this wiki on caesers cipher AKA ROT13)

我一直在寻找密码的解决方案,但我没有看到任何人使用 switch 语句。鉴于挑战(见下文),这个问题是否可以通过使用 switch 语句简单地解决?我已将我的代码放在下面,但它不起作用。

function cciph(str) { 
  var code = "";

  switch {switch (str) {
    case 'A':
      code = "N";
      break;
    case 'B:
      code = 'O';
      break;
      //.....
    case 'M':  code = 'Z';
  }
  return str; 
}

cciph("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");

我不知道开关,但这会给你所有 26 种可能的字符串突变,理论上包括解码后的字符串。

var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];


function cciph(cipherText) {
  for(i = 0; i < 26; i++) {
    var decodedText = cipherText.split("").map(function(c) {
      var charIndex = alphabet.indexOf(c.toLowerCase());
      if (charIndex == -1) {
        return c;
      }
      var modifiedIndex = charIndex + i;
      var correctedIndex = modifiedIndex % 26;
      return alphabet[correctedIndex];
    });
    console.log(decodedText.join(""));
  }
}

cciph("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");