Я хотел бы создать систему для преобразования существующего идентификатора (целочисленный идентификатор или идентификатор пользовательской строки)
Я хотел бы создать вспомогательный метод или метод расширения, который генерирует Guid из любого типа int, long или stringстоимость. Идея состоит в том, чтобы обновить базу данных, но сохранить некоторые данные из моей старой базы данных. Каждый раз, когда я конвертирую идентификатор строки типа «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 - правильный старт? Есть ли какое-либо правило в представлении Guid ()?
Идея md5 заключается в том, что я могу преобразовать все в 16-байтовую подпись. Оттуда мне просто нужно преобразовать его в Guid (). Но я не знаю подробностей о Guid. Существуют ли какие-либо правила, уже зарезервированные позиции для каких-либо данных или другой информации?