基于先前的答案,我能够通过输出适当的字符来解决哈希问题。我仍然遇到长度问题,因为我得到的哈希值比我遵循的文档中预期的哈希值长得多。 api文档说使用SHA512并以“ FA35A0194E3BE7024CEFB1839CBFC922”作为示例参数,但是当我使用简单的密码(例如“ test”)运行哈希测试器以获取要传递的值时,我得到了“ EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772EE43F8A8D886A8A8D886A8E8F8A8A8A8D7A8A8A4A8A8A1E1E86F8A8E8A1E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0比我需要的更长。

仅供参考,这是我正在使用的方法:

byte[] hashedPassword = HashAlgorithm.Create("SHA512").ComputeHash(new UTF8Encoding(false).GetBytes("test"));
Console.WriteLine(BitConverter.ToString(hashedPassword).Replace("-", ""));


希望外面的人比我有更多的经验(比没有经验多)。以某种方式缩小或取一部分值是正常的吗?我不太确定该怎么办。

最佳答案

您要求512位哈希。 512位是64字节。以十六进制写入的64个字节为128个字符。因此,我不明白您为什么认为这里有问题。


  这显然比我需要的更长。


为什么这么明显?

如果它比您所需的时间长得多,那么为什么首先要请求512位哈希?


  以某种方式缩小或取一部分值是正常的吗?


绝对不。


  我不太确定该怎么办。


聘请专门编写安全软件的专业人员,他们可以为您编写该软件并培训您如何进行正确的维护。您对成功编写安全软件的了解不足。用任何一种语言编写安全系统都是最难的事情之一。编写一个实际上不受攻击的系统需要花费多年的培训和经验。

关于c# - C#-如何缩小SHA512的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10336636/

10-11 22:49
查看更多