Add helpers for quickly generating unique IDs

This commit is contained in:
Yoshi Askharoun
2023-05-08 20:28:52 -05:00
parent b68f91fc98
commit f849e1bcaa
+26
View File
@@ -3,6 +3,8 @@ using System.IO;
using System.Threading;
using System.Net.Http;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.Text;
namespace Microsoft.Zune;
@@ -24,4 +26,28 @@ internal static class Extensions
return client.GetStreamAsync(uri);
}
#endif
public static int HashToInt32(this string id)
{
var hashBytes = id.Hash();
return BitConverter.ToInt32(hashBytes, 0) ^ BitConverter.ToInt32(hashBytes, 4);
}
public static Guid HashToGuid(this string id)
{
var hashBytes = id.Hash();
return new Guid(hashBytes);
}
public static long HashToInt64(this string id)
{
var hashBytes = id.Hash();
return BitConverter.ToInt64(hashBytes, 0);
}
public static byte[] Hash(this string id)
{
MD5 md5 = MD5.Create();
return md5.ComputeHash(Encoding.Default.GetBytes(id));
}
}