这是您可以做到的一种方式,而无需创建自己的哈希:
var myString = "Entropy";
byte[] saltBytes = Encoding.ASCII.GetBytes("someSaltIWant");
var dBytes = new System.Security.Cryptography.Rfc2898DeriveBytes(myString, saltBytes).GetBytes(75);
var gibString = Convert.ToBase64String(dBytes);
Console.WriteLine(gibString);
// Always prints MVqAYJbmkxgQ4FdTD+a7/BlfZZLBVDXpsAAYtMuJ4aU5iejD+sB3tHqgSRoCg2KD1vnpI5eXhZa6vWvpOuM8dH8aOi1/zKMXuu4a
即使您对安全性不感兴趣,我认为通过这种散列可以更轻松地达到您想要的 100 个字符。使用 MD5 或任何 SHA,你会很短。
如果您更喜欢不可打印的字符串,则可以这样做:
var dBytes = new System.Security.Cryptography.Rfc2898DeriveBytes(myString, strBytes).GetBytes(100);
string ugly = Encoding.ASCII.GetString(dBytes);