【问题标题】:Which encryption algorithm is useful for encrypting a file stored on disk?哪种加密算法可用于加密存储在磁盘上的文件?
【发布时间】:2011-07-09 04:02:38
【问题描述】:

我在文件中有一些文本。我想加密此文件,以便最终用户无法读取或写入此文件,但应用程序可以读取它。应用程序中可能存在存储的秘密,因为它以另一种方式得到保护。

什么类型的加密支持这些要求?

我在考虑 AES。我对加密了解不多,一直在寻找起点。算法或框架建议会很棒。

最后一点,代码是在 Windows 和 Linux 环境上运行的 Java 代码。

【问题讨论】:

    标签: java encryption


    【解决方案1】:

    AES 或 RSA 就可以了。不过需要注意的重要一点是,一旦您的程序解密数据,逆向工程师将很容易恢复明文,而无需了解密钥或加密算法。

    【讨论】:

    • 我认为 RSA 根本不适合这个问题。
    • 如果让你选一个,你会选择什么。我真的不太了解加密。我只是想要一些可以简单快速地实现的东西。
    • 没关系,因为解密后的数据可以被提取出来。我想我可能会选择 AES,但如果我想更加通用,我可以包含一个动态库,负责处理公钥和解密。要快速完成任务,请使用 AES,以实现更多功能 RSA。
    • -1。 RSA 不是文件加密的正确算法。 可以完成 - 是的。 RSA 是一种非对称加密算法,最适合加密密钥。使用 AES 或其他对称块密码,然后如果您需要传输 AES 密码/密钥,请使用接收者的公钥使用 RSA 加密密钥。
    • @SpyrosP - RSA 专门设计用于加密比其密钥长度短的数据块。公钥密码学的概念旨在通过不安全的通道传输非常小的数据块(密钥)。计算可以使用 RSA 加密的最大字节数:((KeySize - 384) / 8) + 37。即使可以,该算法对大文件的加密效率也太低了!我不会在这里冒险,这是基本的东西。不过不要相信我的话,做一些研究。你甚至可以从这里开始:stackoverflow.com/q/1199058/573083
    【解决方案2】:

    由于您已将帖子标记为“Java” - 我建议您查看“Java Cryptography Extension” (JCE)。从 J2SE 1.4 开始,它与 SDK 和 JRE 捆绑在一起。

    当然还有在 JCE 中使用 AES 的必要示例和 overview

    【讨论】:

      【解决方案3】:

      如果应用程序可以读取它,则应用程序中有一个密钥。如果应用程序中有密钥,那么精力充沛的用户可以找到该密钥并为自己使用。或者窥探内存并查看解密版本。

      【讨论】:

      • 实际上,我们在产品上使用了一种叫做 Software Shield 的东西。它是一个迷你操作系统,可以包装你的应用程序并混淆类似的东西,这样我们就可以在软件上存储密钥。这是一些整洁的东西。
      • 惠勒德蛇。 “默默无闻”从来都不是真正的安全,但另一方面,“安全”是你关心多少以及你愿意花多少钱的问题。如果一些默默无闻的东西漂浮着你的船,它就会漂浮着你的船。
      猜你喜欢
      • 1970-01-01
      • 2022-09-27
      • 2014-12-12
      • 2015-08-29
      • 2013-03-30
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多