我有一个WCF服务,它接收XML文件(在字符串参数中)进行处理。现在我想实现一个错误日志过程。我想记录发生的异常,以及生成错误的XML文件。我应该使用哪种哈希算法来检查文件的重复性
我已经创建了一个MySQL数据库来做到这一点,并将文件存储在一个长blob字段。
我的疑问是如何避免表中存储文件的重复性,因为用户可以重复提交同一个文件。为了节省存储空间,我想确定已经保存了完全相同的文件,在这种情况下,只需重新使用该引用即可。
最好的方法是什么?我的第一个想法是生成一个Hashcode并将其保存在表中的另一个字段中,以便稍后使用它进行搜索。 当该搜索我发现有可用的计算哈希各种算法:
System.Security.Cryptography.KeyedHashAlgorithm
System.Security.Cryptography.MD5
System.Security.Cryptography.RIPEMD160
System.Security.Cryptography.SHA1
System.Security.Cryptography.SHA256
System.Security.Cryptography.SHA384
System.Security.Cryptography.SHA512
至极一个更好呢?使用其中之一来确定文件是否重复是否安全?使用此方法或.GetHashCode()函数有什么区别?