基于先前的答案,我能够通过输出适当的字符来解决哈希问题。我仍然遇到长度问题,因为我得到的哈希值比我遵循的文档中预期的哈希值长得多。 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/