Я хочу сделать несколько тестов, для которых требуются некоторые строки с одним и тем же хэш-кодом, но не с теми же строками. Я не мог найти примеров, поэтому решил написать простую программу, чтобы сделать это для меня.
Нижеприведенный код генерирует две случайные строки снова и снова, пока они не сгенерируют один и тот же хэш-код.
static Random r = new Random();
static void Main(string[] args)
{
string str1, str2;
do
{
str1 = GenerateString();
str2 = GenerateString();
} while (str1.GetHashCode() != str2.GetHashCode() && str1 != str2);
Console.WriteLine("{0}\n{1}", str1, str2);
}
static string GenerateString()
{
string s = "";
while (s.Length < 6)
{
s += (char)r.Next(char.MaxValue);
}
return s;
}
Этот код, кажется, работает (теоретически), но может потребоваться столетия. Поэтому я думал о том, чтобы делать наоборот и генерировать две строки из одного хеш-кода.
Я знаю, что невозможно извлечь строку из хэш-кода, но можно ли генерировать из нее возможные строки?
Я использую Visual Studio 2015 Community Edition. Версия: 14.0.23107.0D14REL.
.NET Framework: 4.6.00081.