我正在尝试对一个已经被废弃的相当旧的应用程序做一些更新,我已经在数据库中找到了一些管理员密码,它似乎是一个非常简单的哈希,但不是我以前遇到的任何东西。我可以更改用户通行证,而不是管理员通行证,这样做是为了破译模式。
下面是一些例子
=>要做的事情
1234 => rebrmyrj
david@work => wbczyjwbxmftfredjmra
password => tfczyyttkjfefpej
lana@work => wyczpewyxtejeffwrc
abcdefghijklmnop => wecrpywjxzfrerearerbapmcwerzfmmc
qrstuvwxyz => tedryytjkzerfrfajejb有人熟悉这个吗??
提前感谢
*编辑
对来自Bjorn和Oscar的输入将哈希更改为加密
发布于 2013-03-16 04:57:59
这似乎是一个poly-alphabetic substitution cipher。输入中的每个字母总是映射到输出中的两个字母,但是每个输入字母到底映射到哪两个字母取决于它在字符串中的位置。
例如,请注意,如果是第一个字母,则a总是映射到we;如果是第二个字母,则a总是映射到cz,依此类推。
由于您选择了-plaintext,这很容易打破;只需对短语aaaaaaaaaaa...、bbbbbbbbbbb...、ccccccccccc...等进行编码,就可以准确地确定哪个字母映射到字符串中每个点的哪个字符(您可能还需要映射大写字母:AAAAAAAAAA...等)。如果你开始看到重复,那就意味着这个密码很可能是一个Vigenère cipher。
发布于 2013-03-16 04:57:55
看起来这是散列还是真正的加密。相同的字符将在相同的位置给出相同的两个字符输出:
char, pos = output
a , 2 = cz
w , 7 = fr
s , 3 = yy如果你看一下相同位置的字符,你会注意到从某个起始值开始只有一个倒计时:
char, pos = output
a , 1 = we
d , 1 = wb字符'a‘+3= 'd',结果为'we’-3= 'wb‘。
因此,您只需找到从其中减去密码字符的原始字符串。剩下的我认为,应该是例行公事。
发布于 2013-03-16 03:41:52
根据定义,散列算法是不可逆的:是一个不可逆的函数。此外,尽管不太可能,但几个输入可能会散列到相同的值(冲突)。
https://stackoverflow.com/questions/15440823
复制相似问题