JavaScript恺撒密码(freeCodeCamp项目)

编程 · 2023-09-22 · 266 人浏览

需求

恺撒密码(Caesar cipher),也被称为移位密码(shift cipher)。在移位密码中,明文中的字母通过按照一个固定数目进行偏移后被替换成新的字母。

现代最常被应用到的一个变种就是 ROT13 加密,也就是明文中的字母向后移 13 位。也就是,A ↔️ N,B ↔️ O等等。

编写一个函数,它将把使用 ROT13 加密编码的字符串作为输入并返回解码字符串。

所有解码后的字母都必须为字母大写。请不要解码非字母的字符(例如,空格、标点符号),但需要在结果中保留它们。

代码实现

function rot13(str) {
  const abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'

  let res = []
  for (let i = 0; i < str.length; i++) {
    let char = str[i]
    if (abc.includes(char)) {
      let index = abc.indexOf(char) + 13
      res.push(abc[index])
    } else {
      res.push(char)
    }
  }

  return res.join('')
}
JavaScript
Theme Jasmine by Kent Liao