猿问

如何在Vigenere Cipher中维持大小写并忽略空格

我需要能够保持相同的大小写,即“攻击”将是“ Lxfopv”,并带有键“柠檬”。另外,我需要保留消息中的所有空格以进行加密。


我使用了if语句来检查空格


    if(text.charAt(i) == ' '){

      continue;

但它似乎无能为力。


function encrypt(text, key) {

  var output= '';

  var alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";


  for(var i = 0; i < text.length; i++){

    var a= alphabet.indexOf(key.charAt(i % key.length));

    var b= alphabet.indexOf(text.charAt(i));

    if(text.charAt(i) == ' '){

      continue;

    }else{

      output += alphabet.charAt((a+ b) % alphabet.length);


    }

  }

  return output;

}

如果传递“黎明时进击”,我的期望输出应该是,Lxfopv ef Rnhr但是我收到LxFopvmHOeIB的是“柠檬”键。


如何解决此问题以获得所需的输出?我已经对字母进行了硬编码,这与它有关吗?


ITMISS
浏览 131回答 2
2回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答