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

56 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
id: 5900f3a81000cf542c50feba
challengeType: 5
title: 'Problem 59: XOR decryption'
videoUrl: ''
localeTitle: 'Проблема 59: Расшифровка XOR'
---
## Description
<section id="description"> Каждому символу на компьютере присваивается уникальный код, а предпочтительным стандартом является ASCII (Американский стандартный код для обмена информацией). Например, в верхнем регистре A = 65, звездочке (*) = 42 и в нижнем регистре k = 107. Современный метод шифрования состоит в том, чтобы взять текстовый файл, преобразовать байты в ASCII, затем XOR каждый байт с заданным значением, взятый из Секретный ключ. Преимущество функции XOR заключается в том, что с использованием одного и того же ключа шифрования на шифровом тексте восстанавливается обычный текст; например, 65 XOR 42 = 107, затем 107 XOR 42 = 65. Для нерушимого шифрования ключ имеет ту же длину, что и текстовое сообщение, а ключ состоит из случайных байтов. Пользователь будет хранить зашифрованное сообщение и ключ шифрования в разных местах, и без обеих «половинок» невозможно расшифровать сообщение. К сожалению, этот метод непрактичен для большинства пользователей, поэтому модифицированный метод заключается в использовании пароля в качестве ключа. Если пароль короче сообщения, что, скорее всего, ключ повторяется циклически по всему сообщению. Баланс для этого метода использует достаточно длинный ключ пароля для обеспечения безопасности, но достаточно короткий, чтобы быть незабываемым. Ваша задача упрощена, так как ключ шифрования состоит из трех символов нижнего регистра. Используя cipher.txt (щелкните правой кнопкой мыши и «Сохранить ссылку / цель как ...»), файл, содержащий зашифрованные коды ASCII, и знание того, что обычный текст должен содержать общие английские слова, расшифруйте сообщение и найдите сумму Значения ASCII в исходном тексте. </section>
## Instructions
<section id="instructions">
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: <code>euler59()</code> должен вернуть 107359.
testString: 'assert.strictEqual(euler59(), 107359, "<code>euler59()</code> should return 107359.");'
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='js-seed'>
```js
function euler59() {
// Good luck!
return true;
}
euler59();
```
</div>
</section>
## Solution
<section id='solution'>
```js
// solution required
```
</section>