【问题标题】:Encrypt/ Decrypt text file in Delphi?在 Delphi 中加密/解密文本文件?
【发布时间】:2010-05-06 10:01:49
【问题描述】:

您好,我想知道文本文件加密和加密的最佳加密技术。

我的场景:

我的软件有两种类型的用户 Administrator 和 Operators。我们的要求是当管理员使用 GUI 输入数据并保存时加密文本文件。该加密文件将输入给操作员,他们只需要选择它并使用该文件。当操作员选择这些文件时,这里的文件应该会自动解密数据以便进一步计算。

请帮助我应该使用哪种加密/解密技术?

【问题讨论】:

    标签: delphi encryption cryptography


    【解决方案1】:

    进行加密时的一条黄金法则是,从整体上理解加密是非常困难的。

    有多种不同的方法/算法可供选择,没有一种算法/方法可以说是最好的。这完全取决于您的需求和影响应用程序分发等的可能性。

    一个潜在问题的例子是,在您的场景中,解密“密钥”需要与应用程序一起分发,并且可能使其不安全。这通常被称为“密钥分配”问题。

    开始阅读有关加密的好地方是http://en.wikipedia.org/wiki/Cryptography

    至于为 Delphi 准备的东西,有一些不错的软件包可用:

    Torry 的页面也有很长的组件列表:

    我强烈建议您使用一些现有的实现,而不是自己动手,因为创建一个安全的工作加密算法非常非常困难。

    【讨论】:

    • DEC(德尔福加密纲要)非常强大。好推荐!
    • Windows 本身为使用 Windows CryptoAPI 的各种加密算法提供了非常好的实现。我建议您使用 CryptoAPI,或者围绕 CryptoAPI 函数编写一个包装类,并在您的代码中使用它们。
    【解决方案2】:

    将加密消息从位置/应用程序移动到另一个位置时,您必须考虑的问题之一是存储加密/解密密钥的位置。

    当我看到你的场景时,它似乎是在你的应用程序中构建的。如果是这样,请记住使用各种技巧来隐藏它:密码字符串应该分成几位,并且只附加在受保护的内存空间中,必须将其标记为不可分页(否则密码可以在页面文件中看到)。 未加密内容(文本文件)的相同规则。最好不要将其保存(甚至暂时)未加密到磁盘。如果保存了,使用后用垃圾覆盖日期,然后再删除。

    另一种方法(特别是如果您已经使用压缩组件)是(文本)文件可以使用密码进行压缩。

    【讨论】:

      【解决方案3】:

      说实话,没有“最好”的技术。它基本上取决于您要保护的数据的敏感性以及可能访问这些数据的人数。对我来说可能是“最好的”可能对你的项目来说是纯粹的矫枉过正。 在您的情况下,您可以使用任何双密钥加密方法。或asymmetric key。基本上,管理员拥有一把钥匙,而操作员拥有另一把钥匙。然后管理员可以加密文件,但不能再次解密它们,除非他有操作员密钥。操作员可以解密文件,如果需要,可以加密只有管理员才能访问的文件。 (非对称密钥以两种方式加密。)

      有多种解决方案可以利用这些非对称密钥。最好的一种是您可以以最简单的方式添加到您的项目中,同时仍然为您的需求提供足够的保护。

      如果您是真正的数学向导,也可以构建自己的非对称密钥算法。计算很复杂,并且在大多数解决方案中都涉及极高的素数。正如 K. Sandell 所说,找到一个以最佳方式满足您需求的良好现有解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-11
        • 2013-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多