ohh*_*hho 3 encryption algorithm decode
我定期收到编码的PDF文件.编码的工作方式如下:
所以,例子是:
13579 -> 3579;
hello -> jgnnq
Run Code Online (Sandbox Code Playgroud)
它基本上是ASCII字符的偏移量(可能是交换).
问题是当我只能访问少量样本时,如何自动找到偏移量.我无法确定编码偏移是否已更改.我所知道的是,一些文本通常(如果不是总是)显示,例如"PDF:","摘要:","总计:",在PDF中.
谢谢!
编辑:感谢您的反馈.我试着将问题分解为更小的问题:
第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 : ;
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)