鉴于密文7b5a4215415d544115415d5015455447414c155c46155f4058455c5b523f
与151515151515151515151515151515151515151515151515151515151515
一起得到6e4f57005448415400544845005041525459004953004a554d50494e472a
(这里没有火箭科学)。
现在,我正在尝试将此十六进制编码字符串解码为普通字符串 - 结果应为Now that the party is jumping\n
。不幸的是,它是
irb(main):012:0> ["6e4f57005448415400544845005041525459004953004a554d50494e472a"].pack('H*')
=> "nOW\x00THAT\x00THE\x00PARTY\x00IS\x00JUMPING*"
对于我来说,它足够接近破译它,但是对于英语字母频率评估员来说,这也足够糟糕得分。
对于我以前的所有字符串,我都使用了[str].pack('H*')
,并且进展顺利。例如
irb(main):004:0> ["54686520717569636b2062726f776e20666f78206a756d7073206f76657220746865206c617a7920646f672e"].pack('H*')
=> "The quick brown fox jumps over the lazy dog."
我猜测新的数据集有一些奇怪的编码,我无法破译和处理。
任何Ruby想法?
答案 0 :(得分:3)
您可能只需要使用0x20对密钥流(以及密文)进行异或。这将把大写转换为小写,并将零转换为空格(0x20)。
因此密钥是0x35而不是0x15。