使用RSA SignHash从签名哈希返回
本文关键字:哈希 返回 RSA SignHash 使用 | 更新日期: 2023-09-27 18:24:34
我非常擅长这个。我甚至不确定我的要求是否正确。
我被要求解密一些包,但我发现该包没有被加密,而是包(byte[])内部有一个受密码保护的.zip。
所以现在我必须取回那个密码。我在代码中追踪到了它,结果是:
lSupraHeader = lCryptoTransformRSA.SignHash(lSupraHeader, CryptoConfig.MapNameToOID("SHA512"));
lSupraHeader是一个Byte[],它包含(除其他内容外)密码。如果我从lSupraHeader中获得字符串,我可以读取密码,问题是在"SignHash"之后,我再也无法获得它了,好吧,我不知道该怎么做。
那个代码是不久前制作的,更改它对我来说不是一个选择
有没有办法从那里检索密码?我问的是正确的吗?我提供了什么,还是需要其他东西?
有没有办法从那里检索密码?
没有。一旦对数据进行了散列处理,就无法对其进行解散列。
SHA也被称为"单向哈希算法"。它的设计使得任何数量的数据都可以放入其中,并且产生有限数量的数据。这样的东西对于检查两条数据是否相等很有用,尽管这种方法也有缺陷(有各种解决方法)。
另一方面,加密接收数据,使用密钥,并吐出一堆大小与原始数据大致相等的随机数据。使用相同的密钥,可以对随机数据进行未加密或解密,以产生原始数据。
话虽如此:
我在代码中追踪到了它,结果是:
你是怎么发现的?看起来您有权访问源代码和调试器。如果这是真的,那么看看是否可以在调试器中找到一个"即时窗口"。您可以通过这种方式设置断点、执行Console.WriteLine(whatever)
并手动检索密码。这样做会使原始代码保持原样。