freeCodeCamp/curriculum/challenges/chinese/08-coding-interview-prep/project-euler/problem-59-xor-decryption.c...

2.0 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f3a81000cf542c50feba 5 Problem 59: XOR decryption 问题59XOR解密

Description

计算机上的每个字符都分配有唯一的代码首选标准是ASCII美国信息交换标准代码。例如大写A = 65星号*= 42小写k = 107.现代加密方法是获取文本文件将字节转换为ASCII然后使用给定值对每个字节进行异或取自密钥。 XOR功能的优点是在密文上使用相同的加密密钥恢复纯文本;例如65 XOR 42 = 107然后107 XOR 42 = 65.对于不可破解的加密密钥与纯文本消息的长度相同密钥由随机字节组成。用户将加密的消息和加密密钥保持在不同的位置并且没有两个“一半”就不可能解密该消息。不幸的是这种方法对大多数用户来说是不切实际的因此修改后的方法是使用密码作为密钥。如果密码短于可能的消息则密钥在整个消息中循环重复。此方法的余额是使用足够长的密码密钥来保证安全性但又要足够短以便令人难忘。您的任务变得简单因为加密密钥由三个小写字符组成。使用cipher.txt右键单击并“保存链接/目标为...”包含加密的ASCII代码的文件以及纯文本必须包含常用英语单词的知识解密消息并找到总和原始文本中的ASCII值。

Instructions

Tests

tests:
  - text: <code>euler59()</code>应返回107359。
    testString: 'assert.strictEqual(euler59(), 107359, "<code>euler59()</code> should return 107359.");'

Challenge Seed

function euler59() {
  // Good luck!
  return true;
}

euler59();

Solution

// solution required