|
|
1
3
Caesar密码算法在JavaScript中的实现非常有趣,因为JavaScripts缺乏真正的模运算符。%只是分裂的提醒。阅读此内容 article 了解更多解释。 然而,您可以很容易地将模定义为自定义函数,然后继续实现凯撒密码,这是一种非常简单的加密形式,原始消息中的每个字母都会向左或向右移动一定数量的位置。 为了解密消息,我们只需将字母向后移动相同数量的位置。 例子:
如果移位后一个字母超出了字母范围,则该字母被包裹在字母表中。示例:如果将字母Z移动3个位置,则字母Z变为C。 这种环绕效果意味着使用模。用数学术语来说,上述内容可以表示为: En(x)=(x+n)模26 Dn(x)=(x n)模26 试图在不使用适当的模运算符的情况下在JavaScript中实现此算法将产生不正确的结果,或者产生非常神秘且难以理解的代码。 通过使用自定义的模函数,代码可以同样地表达数学方程:
玩得高兴 加密一些消息以试用代码。请记住:如果您使用正密钥加密,请使用互补的负密钥对其进行解密。您也可以使用此代码对网络和新闻组中随处可见的ROT13消息进行解码。 如果您想了解在JavaScript中实现modulo的其他方法,请参阅本文开头提到的文章。 |
|
|
2
2
这个
代码只适用于一个字母,因为
此警报的
|
|
|
3
2
(1) 您没有在数组中进行迭代
(2) 你的数组超出了范围。
此外,在您的代码中,您不需要
我会这么做:
或者更简洁(但效率较低):
|
|
|
4
1
//在…工作 https://www.freecodecamp.org/challenges/caesars-cipher
|
|
|
5
0
这里有一个更简单的答案:
|
|
|
6
0
|