我正在尝试创建一个函数,该函数将任意字符串作为输入,并根据该字符串创建GUID。 GUID的格式应该是来自GUID
的{{1}}结构,但它并不重要。重要的是该函数是确定性的,但总是(或总是足够接近)为不同的字符串创建不同的GUID。
我可以使用哪种算法来做到这一点?我已经考虑过对字符串内容的位操作,但我很欣赏一些方向。
答案 0 :(得分:2)
如何计算字符串的MD5哈希并将其视为GUID? GUID和MD5哈希都是128位值。
答案 1 :(得分:1)
您可以散列字符串,然后使用散列的前16个字节来创建GUID(http://msdn.microsoft.com/en-us/library/90ck37x3.aspx)
答案 2 :(得分:1)
检查UUID版本3和5的规格:
实质上,您计算字符串的MD5(或SHA-1)并将结果逐字存储在128位UUID中。对于SHA-1,您需要截断结果,因为SHA-1返回160位。