为对象图生成安全哈希码

2023-12-23

我正在从文件(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(使用前将#替换为@)

为对象图生成安全哈希码 的相关文章

  • 如何确定任务栏位于哪个屏幕

    Screen PrimaryScreen 并不总是有效 因为在多显示器设置中 用户可能会将其任务栏移动到主屏幕以外的屏幕 找到具有最小工作区域的屏幕也不起作用 因为可能存在具有不同分辨率的显示器 有什么办法可以通过任务栏定位屏幕吗 您可以使
  • 在 .NET List 中设置项目 null 是否可以使其可用于垃圾回收,这是一个好主意吗?

    假设我有一个大列表 其中每个项目都被处理一次 然后在长时间操作期间不再查看 List
  • Windows 服务在程序集加载时锁定

    我有一个用 C 编写的 Windows 服务 它还包括一个独立的控制台模式 用于调试目的 它在几乎每台运行它的计算机上都运行良好 但我们遇到了一种情况 当您尝试启动该服务时 它会锁定 然后由于超时而被终止 但是当在同一台机器上以控制台模式运
  • .NET 单点登录

    我一直在尝试使用 C 为 NET Web 应用程序实现 WEB SSO 服务提供程序插件 我将使用 shibboleth 身份提供商 我已经使用 OpenSAML 库为 java 应用程序实现了相同的功能 我想知道在 NET 应用程序中使用
  • 嵌入资源文件的路径

    我的资源文件中有一个图标 我想引用它 这是需要图标文件路径的代码 IWshRuntimeLibrary IWshShortcut MyShortcut MyShortcut IWshRuntimeLibrary IWshShortcut W
  • 将 dotless 添加到我的本地网站后出现 HTTP 错误 500.23

    嗨 我正在尝试跑步dotless http www dotlesscss org 在我本地的 net4 网站上 我的网络配置如下所示
  • 如何在winform的中心设置控件?

    您好 我正在尝试在表单中心设置控件 即标签或文本框 当我最大化该形式时我需要这个 我可以静态或动态设置它吗 大家有什么想法请尽快告诉我 将控件放在中心并设置Anchor财产给None
  • 如何反序列化嵌套对象?

    我已经成功地通过创建数据契约类来创建反序列化 在对客户进行了一番唠叨之后 我的问题是我声明的两个字段都返回空的东西 因此 我查看了它并意识到 JSON 对象是嵌套的 并且我不清楚如何访问内部的部分 数据合同是这样的 但我得到Bopp作为 n
  • DataGridView 数据绑定到 List>

    给定代码 class Foo public string Value get set public int Id get set List
  • C# 组件事件?

    我正在尝试编写一个将公开事件的 C 组件 该组件将由非托管 C 应用程序导入 根据一些教程 我想出了这段代码 针对 C 端 namespace COMTest ComVisible true Guid 02271CDF BDB9 4cfe
  • .Net StreamWriter.BaseStream,这个定义是什么意思? “获取与后备存储接口的底层流。”

    我正在读关于StreamWriter今天 偶然发现了这个楼盘 BaseStream 我正在寻找定义并发现了这个 获取与后备存储接口的底层流 从这里MSDN StreamWriter BaseStream http msdn microsof
  • JSON.NET 不区分大小写的反序列化不起作用

    我需要将一些 JSON 反序列化到我的对象中 其中 JSON 的大小写未知 不一致 JSON NET 应该不区分大小写 但它对我不起作用 我的班级定义 public class MyRootNode public string Action
  • Destruct.ByTransforming 似乎没有生效

    我正在尝试解构System Type仅使用类型名称 没有命名空间 但得到了意外的结果 Setup 第一个转换按预期工作 生成短字符串 a 的前 8 个字符 Guid 然而 第二个从未被调用过 Destructure ByTransformi
  • 我可以在 RestEasy 中指定用于方法结果转换的 jackson @JsonView 吗?

    我正在使用基于的序列化模型 JsonView 我通常配置杰克逊ContextResolver像这样 Override public ObjectMapper getContext Class
  • 如何使 sgen.exe 保留程序集的版本?

    我想为我的程序集创建一个序列化程序集 sgen做得很好 但我不知道如何让它为序列化程序集分配与源程序集相同的版本 有任何想法吗 sgen似乎默认采用源程序集版本 这是相当合理的 这是我的运行方式 没有什么特别的 PathToSDK Micr
  • 对象 xml 反序列化问题?

    我的对象具有父子关系 每个子对象都有一个Parent指向其容器的属性 当这个对象在应用程序中创建时 它就被设置了 因此没有问题 此 Parent 属性标记有 XmlIgnore 属性 因为它需要设置为其运行时父实例 那么 在对象反序列化后初
  • 运行 C# exe 文件

    复制 为什么我的 NET 应用程序在从网络驱动器运行时会崩溃 https stackoverflow com questions 148879 why does my net application crash when run from
  • 使用 MessagingCenter 和标准 .NET 事件处理程序向感兴趣的各方通知更改有什么区别?

    使用 MessagingCenter 和标准 NET 事件处理程序向感兴趣的各方通知更改有什么区别 下面演示了同一事物的两个 未经测试的 实现 public class FooClass public event EventHandler
  • Silverlight 4relativeSourceFindAncestor绑定[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions Silverlight 4中会有Re
  • 将 .NET 类库(主要定义 CRUD 操作)公开为服务

    公开现有内容的最佳 有效和最快的方法是什么 类 图书馆 主要定义 CRUD 操作 作为service 周转基金服务 or WCF数据服务 以便它可以与银光 or Ajax 在那儿tools 代码生成器 RAD 工具 哪些可以支持这个 预先感

随机推荐