Вы можете использовать стандартную функцию ha sh, например, SHA256:
string str = "the quick brown fox jumps over the lazy dog";
byte[] encoded = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(str));
var value = BitConverter.ToUInt32(encoded, 0) % 1000000;
Это определено c, не зависит от платформы (поскольку SHA256 стандартизирован), может использовать ввод произвольной длины, и предоставляет «очень» уникальный номер для любой строки (т. е. очень маловероятно, что вы найдете другую строку с тем же номером, но это зависит от количества используемых битов вывода).