1

我在这方面非常n00b。我什至不确定我的要求是否正确。

我被要求解密一些包,但我发现包没有被加密,而是包(字节 [])内部有一个 .zip 并受密码保护。

所以现在我必须找回那个密码。我在代码中跟踪它并得出这个结论:

lSupraHeader = lCryptoTransformRSA.SignHash(lSupraHeader, CryptoConfig.MapNameToOID("SHA512"));

lSupraHeader 是一个 Byte [],其中包含(在其他事物之间)密码。如果我从 lSupraHeader 获取字符串,我可以读取密码,问题是在“SignHash”之后我无法再获取它,好吧,我不知道该怎么做。

该代码是不久前制作的,更改它不是我的选择。

有没有办法从那里找回密码?我问的是我提供的东西是正确的还是我需要别的东西?

4

1 回答 1

2

有没有办法从那里找回密码?

不可以。一旦数据经过哈希处理,就无法取消哈希处理。

SHA 也称为“单向散列算法”。它被设计成可以将任意数量的数据放入其中,并输出有限数量的数据。这些东西对于检查两条数据是否相等很有用,尽管这种方法也有缺陷(有各种变通方法)。

另一方面,加密接收数据,使用密钥,并吐出一堆大小与原始数据大致相等的随机数据。使用相同的密钥,随机数据可以被解密或解密,以产生原始数据。

话说回来:

我在代码中跟踪它并得出这个结论:

你是怎么发现的?您似乎可以访问源代码和调试器。如果这是真的,那么看看你是否可以在你的调试器中找到一个“立即窗口”。您也许可以设置断点、执行Console.WriteLine(whatever)并以这种方式手动检索密码。这样做会使原始代码保持不变。

于 2013-07-22T18:31:33.000 回答