【问题标题】:Serialized object password序列化对象密码
【发布时间】:2013-06-27 17:26:39
【问题描述】:

我在 Visual Basic.net 中序列化一个对象并将这个对象保存到文件中。在此过程中,我使用 CryptoStream 使用密码加密对象。我的问题是:检查密码是否正确的最佳方法是什么?

我应该只检查错误号,看看它是否是使用错误密码时返回的数字,还是可以使用特定函数来确定是否使用了正确的密码?

【问题讨论】:

    标签: vb.net serialization visual-studio-2012 passwords cryptography


    【解决方案1】:

    密码没有任何“正确”或“不正确”密钥的概念——它们只是根据密钥将一些数据转换为其他数据。从密码的角度来看,每个转换都与其他任何转换一样“正确”。

    您可以简单地尝试解析数据并捕获数据无效时发生的错误。这是一种相当常见的方法,但在这种情况下,您需要使解析代码非常健壮。也无法区分损坏和密码错误,这可能是用户界面问题。

    另一种方法是使用某种消息身份验证。 GCM 如果您可以访问它,那么一个相当简单的选择将是它。手动将HMAC 应用于密文需要更多的规划,但应该是可能的。这有点困难,因为您必须为密码和 MAC 使用不同的密钥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多