--- id: 5900f3a81000cf542c50feba challengeType: 5 title: 'Problem 59: XOR decryption' videoUrl: '' localeTitle: 问题59:XOR解密 --- ## Description
计算机上的每个字符都分配有唯一的代码,首选标准是ASCII(美国信息交换标准代码)。例如,大写A = 65,星号(*)= 42,小写k = 107.现代加密方法是获取文本文件,将字节转换为ASCII,然后使用给定值对每个字节进行异或,取自密钥。 XOR功能的优点是在密文上使用相同的加密密钥,恢复纯文本;例如,65 XOR 42 = 107,然后107 XOR 42 = 65.对于不可破解的加密,密钥与纯文本消息的长度相同,密钥由随机字节组成。用户将加密的消息和加密密钥保持在不同的位置,并且没有两个“一半”,就不可能解密该消息。不幸的是,这种方法对大多数用户来说是不切实际的,因此修改后的方法是使用密码作为密钥。如果密码短于可能的消息,则密钥在整个消息中循环重复。此方法的余额是使用足够长的密码密钥来保证安全性,但又要足够短,以便令人难忘。您的任务变得简单,因为加密密钥由三个小写字符组成。使用cipher.txt(右键单击并“保存链接/目标为...”),包含加密的ASCII代码的文件,以及纯文本必须包含常用英语单词的知识,解密消息并找到总和原始文本中的ASCII值。
## Instructions
## Tests
```yml tests: - text: euler59()应返回107359。 testString: 'assert.strictEqual(euler59(), 107359, "euler59() should return 107359.");' ```
## Challenge Seed
```js function euler59() { // Good luck! return true; } euler59(); ```
## Solution
```js // solution required ```