考虑以下代码:
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] hashedBytes;
byte[] previousHashedBytes;
UTF8Encoding encoder = new UTF8Encoding();
// New hashedBytes array
hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(someString + theValue));
// previousHashedBytes retrieved from DB
previousHashedBytes = GetPreviousValueFromDB();
然后,应用程序将hashedBytes插入数据库。我需要确保由于一项新政策,该hashedBytes值不能重复使用,因此我需要某种方式将现有的hashedBytes值与新的进行比较。
注意:someString
的值始终相同。
一个人如何比较previousHashedBytes
和hashedBytes
以查看它们是否相同?
答案 0 :(得分:3)
基本上,如果您在DB中仅具有字节哈希,则要比较两个字节数组?
您可以在这里获取:Comparing two byte arrays in .NET
最适合您的选项之一是:
StructuralComparisons.StructuralEqualityComparer.Equals(hashedBytes,
previousHashedBytes)