JavaScript基础算法——凯撒密码Caesar cipher

本文介绍了一种基于凯撒密码的ROT13加密解密算法实现。通过将字母向后移动13位,实现字符串的加密与解密。文章提供了具体的JavaScript函数实现,能够处理大写字母的加密解密,同时保持非字母字符不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求:

凯撒密码Caesar cipher,又叫移位密码。

移位密码也就是密码中的字母会按照指定的数量来做移位。

一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔ 'O',以此类推。

写一个ROT13函数,实现输入加密字符串,输出解密字符串。

所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。

样本:

rot13("SERR PBQR PNZC") 应该解码为 "FREE CODE CAMP"

rot13("SERR CVMMN!") 应该解码为 "FREE PIZZA!"

rot13("SERR YBIR?") 应该解码为 "FREE LOVE?"

rot13("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.") 应该解码为 "THE QUICK BROWN DOG JUMPED OVER THE LAZY FOX."

解法:

function rot13(str) { 
  var newStr = "";
  for(var i=0;i<str.length;i++){
    if(str.charCodeAt(i)>=65&&str.charCodeAt(i)<=90){
      newStr+=String.fromCharCode((str.charCodeAt(i)+13-65)%26+65);
    }else{
      newStr+=String.fromCharCode(str.charCodeAt(i));
    }
  }
  return newStr;
}

rot13("HELLO");  // 你可以修改这一行来测试你的代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值