← 完整题目索引

PROJECT EULER · #0059

异或解密

XOR Decryption

仅题目 · 已解决原题 ↗

计算机上的每个字符都分配有一个唯一的代码,首选标准是 ASCII(美国信息交换标准代码)。例如,大写 A = 65、星号 (*) = 42、小写 k = 107。

现代加密方法是获取文本文件,将字节转换为 ASCII,然后将每个字节与从密钥中获取的给定值进行异或。 XOR函数的优点是对密文使用相同的加密密钥,恢复出明文;例如,65 XOR 42 = 107,则 107 XOR 42 = 65。

对于不可破解的加密,密钥与明文消息的长度相同,并且密钥由随机字节组成。用户将加密的消息和加密密钥保存在不同的位置,如果没有两个"一半",就不可能解密该消息。

不幸的是,这种方法对于大多数用户来说是不切实际的,因此修改后的方法是使用密码作为密钥。如果密码比消息短(这很可能),则该密钥将在整个消息中循环重复。此方法的平衡点是使用足够长的密码密钥以确保安全,但又要足够短以方便记忆。

您的任务已变得简单,因为加密密钥由三个小写字符组成。使用 0059_cipher.txt(右键单击并"将链接/目标另存为...")、包含加密 ASCII 代码的文件以及纯文本必须包含常见英语单词的知识,解密消息并找到原始文本中 ASCII 值的总和。

题解待补充

这道题的题目已收录,解题思路、代码和答案将在后续补充。