我们希望根据一些随机字符串生成一个Guid。目标是Guid对于给定的字符串始终是相同的。
为了清楚起见,我的字符串不是格式化的,它可能是“Toto”为“asdfblkajsdflknasldknalkvkndlskfj”。
我知道这会生成一些与我的输入字符串一样独特的Guid,但这不是问题所在。
答案 0 :(得分:3)
由于Guid
和MD5哈希都是128位整数,因此可以使用给定字符串的MD5作为Guid
。它将始终如一地重现相同的值:
using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
{
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);
Guid g = new Guid(hashBytes);
}