Я хотел бы создать вспомогательный метод или метод расширения, который генерирует Guid из любого целого, длинного или строкового значения. Идея состоит в том, чтобы обновить базу данных, но сохранить некоторые сведения из моей старой базы данных. Каждый раз, когда я конвертирую идентификатор строки, например «O-2019-10-15», система генерирует один и тот же уникальный Guid. Давайте сосредоточимся на строке.
Код: Выделить всё
public static Guid GenerateGuid(string input)
{
// Convertion
byte[] _byteIds = Encoding.UTF8.GetBytes(input);
//What about using MD5?
MD5CryptoServiceProvider _md5 = new MD5CryptoServiceProvider();
byte[] _checksum = _md5.ComputeHash(_byteIds);
// Convert ?
string part1 = /* ??? */;
string part2 = /* ??? */;
string part3 = /* ??? */;
string part4 = /* ??? */;
string part5 = /* ??? */;
//Concat these 4 part into one string
return Guid.Parse("{0}-{1}-{2}-{3}-{4}", part1, part2, part3, part4, part5);
}
Идея md5 заключается в том, что я могу преобразовать все в 16-байтовую подпись. Оттуда мне просто нужно преобразовать его как Guid(). Но подробностей о Гиде я не знаю. Существуют ли какие-либо правила, зарезервированные позиции для каких-либо данных или другой информации?
Подробнее здесь: https://stackoverflow.com/questions/583 ... d5-to-guid
Мобильная версия