来自: 加密公司。
致: x$*sj4(即你)
如果您愿意接受任务,您需要用最少的按键数创建一个程序,该程序:
接受两个文件名参数(可以是命令行或标准输入),第一个文件包含密钥,第二个文件包含一些消息。这两个文件都是纯文本。
使用XOR加密将密钥应用于消息,覆盖原始文件。
示例:
输入文件:
StackOverflow is Cool
密钥:
Code Golf
加密输出文件的十六进制转储:
0000000: 101b 0506 4b08 1909 1425 030b 1200 2e1c ....K....%......
0000010: 4c25 2c00 080d 0a L%,....
为简单起见,假设文件可以适应内存。
此消息将在5... 4... 3... 2... 1...自行加密。
#####
#### _\_ ________
##=-[.].]| \ \
#( _\ | |------|
# __| | ||||||||
\ _/ | ||||||||
.--'--'-. | | ____ |
/ __ `|__|[o__o]|
_(____nm_______ /____\____
如果密钥的大小大于或等于消息的大小,并且密钥是通过无偏随机过程生成的,则XOR加密是不可能被破解的。参见:一次性密码本。所以这里没有“差劲的加密”问题。
\r\n
对。所以很可能是原帖作者实现时出现了bug :) - Thomas