2013-06-12 126 views
2

我试图找出一些东西。我有一个遗留系统,我没有使用它。我们以这种方式使用东西有商业原因。制定出加密算法

系统中的某些字段被我最终想要替换的一个中间件加密。我无法替换系统的这部分,因为我无法正确解密这些值。

例如,我有包含单词的字段:

这是加密和变成:

^ADFJBLFOHLOJFNHHKFJLHFJNPCJFJCPFBAPEKDKM

词语

惠灵顿靴

成为

^KOKFDEJPAAPFJHPOIGOICOAHKFLNFHMIOJNHAAHF

我可以看到未加密的数据,我可以看到生成的加密数据,但我想找到用什么算法将字段值转换为加密版本。这样做的主要原因是我要求大量增加包含加密数据的字段的数量,但目前我不能这样做,因为我不能替换现有的加密机制,因为我不知道用于加密的内容数据。

系统中只有太多的数据要通过并加载每条记录并记录未加密的数据,因此我可以创建一个新的加密机制。

如果我知道现有数据是如何加密的,我可以使用相同的方法来加密我的新字段。系统只对某些字段进行加密,我的系统扩展需要使用相同的方法加密其他字段。

我该怎么做?甚至有可能找出数据是如何加密的以及使用了什么方法?

+1

你确定它是加密,而不仅仅是一个解析错误? – djechlin

+2

恐怕为了找出使用什么加密,你必须挖掘代码... – alfasin

+0

只是一个想法 - ^被用来表示异或。而且两者的长度都是一样的。也许这只是一个简单的XOR加密与通行短语...只是一个猜测......此外,可能会有所帮助:http://security.stackexchange.com/questions/3989/how-to-determine-what-type -of-encoding-encryption-has-been-used – Gray

回答

5

它是SHA1,编译为A为0,B为1,C为2等。例如,“wellington boot”示例的SHA1哈希值为“aea5349f00f ...”,显然是“KOKFDEJPAAP”。 ..“

因此,您可以使用SHA1并执行相同的翻译以继续该模式。

要检查此问题,请尝试使用短语“测试短语” - 其中的SHA1是“ab8f37d89b1154ba18c78a7e4b8eef2acdfec1eb”,它将在您的系统中变为“KLIPDHNIJL ...”。

+1

已确认。 SHA1(“ferret”)= 03591B ...或ADFJBL ...在编码方案 – zindorsky

+0

这正是我想要的。现在我可以重新创建相同的加密方法。我知道SHA1不是一种可逆的加密机制,我所需要的只是能够加密和比较一次存储的数据。 –