想要解码算法

ohh*_*hho 3 encryption algorithm decode

我定期收到编码的PDF文件.编码的工作方式如下:

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

所以,例子是:

13579 -> 3579;
hello -> jgnnq
Run Code Online (Sandbox Code Playgroud)

它基本上是ASCII字符的偏移量(可能是交换).

问题是当我只能访问少量样本时,如何自动找到偏移量.我无法确定编码偏移是否已更改.我所知道的是,一些文本通常(如果不是总是)显示,例如"PDF:","摘要:","总计:",在PDF中.

谢谢!

编辑:感谢您的反馈.我试着将问题分解为更小的问题:

第1部分:如何检测字符串内相同的部分?

YOU*_*YOU 5

你需要暴力破解它.

如果这些模式很简单,就像你的例子中的+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 : ;
Run Code Online (Sandbox Code Playgroud)

你可以很容易地实现这样来检查知识词

>>> 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
Run Code Online (Sandbox Code Playgroud)