小编典典

想要的解码算法

algorithm

我会定期收到编码的PDF文件。编码如下:

  • PDF可以在Acrobat Reader中正确显示
  • 全选并通过Acrobat Reader复制测试
  • 并粘贴到文本编辑器中
  • 将显示内容已编码

因此,示例如下:

13579 -> 3579;
hello -> jgnnq

它基本上是ASCII字符的偏移量(也许是交换)。

问题是当我只能访问几个样本时如何自动找到偏移量。我不确定编码偏移量是否已更改。我所知道的是,PDF中通常会显示一些文本(如果不是总是的话),例如“名称:”,“摘要:”,“总计:”。

谢谢!


阅读 280

收藏
2020-07-28

共1个答案

小编典典

您需要对其进行暴力破解。

如果这些模式很简单,例如示例中的+2个字符代码(即+2个字符代码)

h i j
e f g
l m n
l m n
o p q

1 2 3
3 4 5
5 6 7
7 8 9
9 : ;

您可以像这样轻松实施以检查已知单词

>>> text='jgnnq'
>>> knowns=['hello', '13579']
>>>
>>> for i in range(-5,+5): #check -5 to +5 char code range
...     rot=''.join(chr(ord(j)+i) for j in text)
...     for x in knowns:
...         if x in rot:
...             print rot
...
hello
2020-07-28