我正在从文件(xls、csv、xml)导入一些数据,这将产生一个复杂的内存中对象图。现在我需要知道该图自导出以来是否已被修改。检查这个的安全方法是什么?我想我会导出文件的哈希码?如果是这样的话生成对象哈希码的标准方法 https://stackoverflow.com/questions/263400/what-is-the-best-algorithm-for-an-overridden-system-object-gethashcode够了吗?我应该如何生成哈希值?我更愿意在对象图上而不是在实际的流/文件上生成哈希。
您可以通过加密或使用哈希码来确保没有人更改您的数据。如果您提到基于文本的格式,您会失去人类可读性,所以我认为您会更喜欢哈希码。
是否可以应用标准哈希方法在很大程度上取决于您到底认为“安全”的是什么:如果您只是想确保在存储/传输数据时没有硬件错误,或者您想检测某人的简单更改不知道他在做什么,那可能没问题 - 如果您确保使用良好的 GetHashCode() 函数。如果您想保护数据免受“攻击者”的侵害,我不会依赖 32 位“自制”哈希。 (特别是如果“攻击者”可能知道代码,例如在开源项目中)。
在这种情况下,我更喜欢更强的哈希函数,例如 MD5(不是很安全)或更好的哈希函数SHA-2 http://en.wikipedia.org/wiki/SHA-256。这些工作在字节流上,您必须对数据(XML 等)本身或 .net 序列化数据进行哈希处理(这使得哈希值独立于文件的数据格式)。 .net 为这些算法提供了类,请参见示例http://msdn.microsoft.com/de-de/library/system.security.cryptography.hmacsha256.aspx http://msdn.microsoft.com/de-de/library/system.security.cryptography.hmacsha256.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)