首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反转简单的加密算法

反转简单的加密算法
EN

Stack Overflow用户
提问于 2013-03-16 03:40:18
回答 3查看 205关注 0票数 1

我正在尝试对一个已经被废弃的相当旧的应用程序做一些更新,我已经在数据库中找到了一些管理员密码,它似乎是一个非常简单的哈希,但不是我以前遇到的任何东西。我可以更改用户通行证,而不是管理员通行证,这样做是为了破译模式。

下面是一些例子

=>要做的事情

代码语言:javascript
复制
1234 => rebrmyrj

david@work => wbczyjwbxmftfredjmra

password => tfczyyttkjfefpej

lana@work => wyczpewyxtejeffwrc

abcdefghijklmnop => wecrpywjxzfrerearerbapmcwerzfmmc

qrstuvwxyz => tedryytjkzerfrfajejb

有人熟悉这个吗??

提前感谢

*编辑

对来自Bjorn和Oscar的输入将哈希更改为加密

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-16 04:57:59

这似乎是一个poly-alphabetic substitution cipher。输入中的每个字母总是映射到输出中的两个字母,但是每个输入字母到底映射到哪两个字母取决于它在字符串中的位置。

例如,请注意,如果是第一个字母,则a总是映射到we;如果是第二个字母,则a总是映射到cz,依此类推。

由于您选择了-plaintext,这很容易打破;只需对短语aaaaaaaaaaa...bbbbbbbbbbb...ccccccccccc...等进行编码,就可以准确地确定哪个字母映射到字符串中每个点的哪个字符(您可能还需要映射大写字母:AAAAAAAAAA...等)。如果你开始看到重复,那就意味着这个密码很可能是一个Vigenère cipher

票数 3
EN

Stack Overflow用户

发布于 2013-03-16 04:57:55

看起来这是散列还是真正的加密。相同的字符将在相同的位置给出相同的两个字符输出:

代码语言:javascript
复制
char, pos = output
a   , 2   = cz
w   , 7   = fr
s   , 3   = yy

如果你看一下相同位置的字符,你会注意到从某个起始值开始只有一个倒计时:

代码语言:javascript
复制
char, pos = output
a   , 1   = we
d   , 1   = wb

字符'a‘+3= 'd',结果为'we’-3= 'wb‘。

因此,您只需找到从其中减去密码字符的原始字符串。剩下的我认为,应该是例行公事。

票数 3
EN

Stack Overflow用户

发布于 2013-03-16 03:41:52

根据定义,散列算法是不可逆的:是一个不可逆的函数。此外,尽管不太可能,但几个输入可能会散列到相同的值(冲突)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15440823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档