相关疑难解决方法(0)

使用 C# 中的默认哈希函数生成具有相同哈希值的三个不同字符串

我试图使用编程语言提供的默认哈希函数生成三个不同的字符串 A、B 和 C,以便它们的哈希值全部相等。具体来说,我需要确保A不等于B,B不等于C,A不等于C。

我尝试了多种方法,但尚未成功找到解决方案。我正在寻求帮助来实现可以满足这些要求的方法或算法。所有三个字符串的哈希值必须相同,这一点至关重要。

这是我的实现,但是它仍然不完整,因为我与前两个字符串发生了冲突,但与第三个字符串没有发生冲突。

var dictionary = new Dictionary<int, string>();

  int collusionCounter = 0, stringCounter = 0;
  string myString;
  int hash = 0;

  List<string> myList = new List<string>();


  while (true)
  {
    stringCounter++;
    myString = stringCounter.ToString();

    try
    {
      hash = myString.GetHashCode();
      dictionary.Add(hash, myString);
    }
    catch (Exception)
    {
      if (dictionary.ContainsKey(hash))
      {
        myList.Add(myString);
        collusionCounter++;
        if (collusionCounter == 2)
        {
          break;
        }
      }
      continue;
    }
  }

  var A = myList[0];
  var B = myList[1];
  var C = dictionary[hash];

  Console.WriteLine($"{A.GetHashCode()} {B.GetHashCode()} {C.GetHashCode()}");
Run Code Online (Sandbox Code Playgroud)

hier …

c# multithreading hash-function hashcode

0
推荐指数
1
解决办法
161
查看次数

标签 统计

c# ×1

hash-function ×1

hashcode ×1

multithreading ×1