假设我有一个字符串,例如“ 70c3bdc5ceeac673”。在C#中是否可以基于此字符串创建类似GUID的结构(DB列仅接受uniqueidentifier)?目的是每次我传递该值时都创建相同的Guid或唯一字符串。我猜想本质上就像是带密钥的Hmac SHA1哈希。
Guid从SHA256哈希创建似乎是一个简单的选择:
var guid = new Guid(
System.Security.Cryptography.SHA256.Create()
.ComputeHash(Encoding.UTF8.GetBytes("70c3bdc5ceeac673")).Take(16).ToArray());
Run Code Online (Sandbox Code Playgroud)
代码会丢弃一半的哈希结果,但不会改变以下事实,即相同的字符串始终会转换为相同的Guid。
或者,根据您的要求,仅将字符串转换为字节数组并以0 /删除多余的字符填充就足够了。
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |