【发布时间】:2018-09-01 20:42:02
【问题描述】:
当我将生成的值输出到数据网格中时,它会在将唯一值添加到数据网格之前将相同的值放置大约 15 次。有谁知道这个问题的任何解决方案或解决方法?另请注意,我在另一个 for 循环中运行此 for 循环以生成特定数量的值。
var parts = new List<string>();
string hash = CalculateMD5Hash(identifier);
for (var i = 0; i < 32; i += 2)
{
string chars = "0123456789ABCDEFGHJKLMNPQRTUVWXY";
var nextDigit = Convert.ToInt32(hash.Substring(i, 2), 16) & 31;
var withDash = (((i % 8) == 0) && (i > 0));
parts.Add(withDash ? "-" : "");
parts.Add(chars.Substring(nextDigit, 1));
}
string[] array = parts.ToArray();
string joined = string.Join("", array);
string output = identifier + ":" + joined;
string[] keySplit = output.Split(':');
outputGrid.Rows.Add(keySplit[0], keySplit[1]); //Outputs mulitple times
【问题讨论】:
-
我们需要查看两个循环来确定您的问题
-
你能提供更多关于你想要获得什么的细节吗?描述不是很清楚,这可以解释否决票。你能像@DanielLoudon 说的那样分享更多代码吗?
-
@Daniel Loudan @Mikitori 用于另一个循环,因为我允许用户输入我只是在做 ` for (var i = 0; i i.imgur.com/hily9ej.png
-
那个哈希值是一样的。使用调试器进行确认。 MD5 哈希的部分字符串版本没有任何随机性,因此没有太多理由期望它们不同
-
@Plutonix 我可以确认它的不同,因为每次我转换为 md5 它都是一个独特的值