c# - 使用 SHA256 将字符串转换为 Guid 而不截断

标签 c# hash guid sha256 sha

有没有办法在不截断 16 个字节的情况下使用 SHA256 将字符串转换为 GUID?

目前我有这个:

using SHA256 sha2 = SHA256.Create())
{
     var hash = sha2.ComputeHash(Encoding.Default.GetBytes(string));
     return new Guid(hash.Take(16).ToArray());
}

最佳答案

散列与 Guid 不同。试图将 2 等同起来是不正确的。

如果你想要一个唯一的标识符:

return new Guid();

那会给你一个。

如果您想要散列,存储为字节或字符串,而不是 Guid

关于c# - 使用 SHA256 将字符串转换为 Guid 而不截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47041120/

相关文章:

c# - WPF 复选框绑定(bind)

java - 使用哈希码确定对象等价性

c# - 使用 System.Net.Mail 唯一标识发送的电子邮件

c# - 为什么 System.Guid 不实现 System.IConvertible?

perl - 子程序参数作为没有临时变量的键值对

android - 创建全局唯一的 Android 标识符

c# - 转换字符串值的速记

c# - 当对象具有集合属性时投影 IQueryable<object> 时 Automapper 失败

c# - 读取 CSV 到对象列表

python - 在字典中覆盖 Python 的哈希函数