c# - 如何使用 SHA512 散列密码

标签 c# security encryption passwords hash

在我之前的问题中,有人告诉我散列密码而不是加密,事实证明这是正确的。问题是,我以前从未处理过散列密码,所有文档都说 SHA512,我曾尝试在测试帐户上使用它但无济于事。我不确定从这里去哪里。代码注释为我提供了他们称之为“加密”字符串的示例,它是“FA35A0194E3BE7024CEFB1839CBFC922”,我不确定如何使用 SHA512 对其进行格式化,因为它所获取和返回的只是一个字节数组或来自ComputeHash() 方法:

byte[] hashedPassword = HashAlgorithm.Create("SHA512").ComputeHash( ??? );

更新

我已经尝试在字节上打印出 UTF8Encoding.GetString,但它只显示一堆废话字符,看起来与示例文档中的字符完全不同。

最佳答案

用简单的 SHA-512 散列仍然是错误的。使用通过 Rfc2898DeriveBytes 公开的 PBKDF2 .

它返回原始字节,您应该使用十六进制或 base64 对其进行编码。

您可以使用以下方式进行十六进制编码:

BitConverter.ToString(bytes).Replace("-","")

关于c# - 如何使用 SHA512 散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324141/

相关文章:

c# - 复制 System.Windows.Documents.Inline 而不修改它

c# - 使用 XMLReader 解析不良的结构化文件

java - 安全漏洞 - Veracode 报告 - crlf 注入(inject)

c# - 使用 C# 安全地连接到 AWS MySQL 数据库

c - 我的C加密程序有什么问题?

C# 错误代码与异常

c# - token 不应使用 PDFsharp 处理 PDF

security - ActiveMQ 和客户端通过证书身份验证身份

delphi - 字符串加密问题

java - 为什么我在解密时得到 'BadPaddingException'?