gpt4 book ai didi

c# - MD5 散列的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:57 24 4
gpt4 key购买 nike

我在使用以下代码时遇到了一个奇怪的问题,下面的代码假设在一次迭代后停止,但它只是继续运行。但是,如果我删除最后一个“result_bytes = md5.ComputeHash(orig_bytes);”然后它会工作。有没有人遇到过类似的问题?

MD5 md5;
byte[] orig_bytes;
byte[] result_bytes;
Dictionary<byte[], string> hashes = new Dictionary<byte[], string>();

string input = "NEW YORK";
result_bytes = UnicodeEncoding.Default.GetBytes("HELLO");
while (!hashes.ContainsKey(result_bytes))
{
md5 = new MD5CryptoServiceProvider();
orig_bytes = UnicodeEncoding.Default.GetBytes(input);
result_bytes = md5.ComputeHash(orig_bytes);

hashes.Add(result_bytes, input);
Console.WriteLine(BitConverter.ToString(result_bytes));
Console.WriteLine(hashes.ContainsKey(result_bytes));

result_bytes = md5.ComputeHash(orig_bytes);
}

最佳答案

当您在最后一行将 result_bytes 重新分配给一个新值时,您有一个对字节数组的新引用,它不等于集合中的数组,因此 hashes.ContainsKey 返回 false .

关于c# - MD5 散列的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3930667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com