0

对于以下情况,最安全的加密方法是什么:

  • 我有一个运行并获取文件、加密并覆盖原始文件的 exe。

我发现我自己的想法有两个问题:

  1. 在运行文件的人无法从 exe 中提取加密密钥的情况下,我可以使用哪种语言?
  2. 您认为确保没有密钥无法破解文件的最安全加密方法是什么?(可以用这种语言实现)?
4

4 回答 4

3

像大多数安全问题一样,您的问题归结为密钥管理

除非密钥本身被加密,否则任何密钥都不能安全地嵌入到可执行文件中。但随后可执行文件需要访问加密密钥,依此类推。

安全存储密钥的唯一方法是将其放在只有授权实体可以访问的地方。这归结为选择合适的存储系统,它可能是具有受控访问的数据库或文件系统,也可能在人脑中。

许多密码既安全又容易获得。最常见的一种是AES,即高级加密标准,已被证明具有军事实力。正确的选择取决于您需要的安全级别;您愿意在创建、存储和使用适当的密钥方面投入的计算资源量;以及您的用户愿意等待加密/解密的时间。

于 2012-05-13T18:31:18.140 回答
1

即使嵌入到 bin exe 中,也无法完全保护密钥。为什么不让程序的用户提供 enc/dec 密钥并将密钥保护留给用户呢?仅供参考,大多数现代算法都很好,诀窍是密钥位长度(位越多越好)和密钥保护以确保输出无法被破译。

于 2012-05-13T18:07:28.193 回答
0

如果您的问题是加密某些内容并保护机密,因为使用此机密有人可以解密某些文件,请尝试使用一些带有公钥/私钥的算法,例如 RSA。有许多语言的库可以使用 RSA。

于 2012-05-13T17:53:32.600 回答
0

如果您不希望任何人能够从可执行文件中提取加密密钥,则需要对密钥本身进行加密,可能使用密码。当然,任何有密码的人都可以得到密钥。没有办法允许某人在不让他们访问他们正在使用的密钥的情况下加密某些东西。

如果您真正想做的是让人们加密文件,而不是让他们解密文件,那么您正在寻找公钥密码术。

于 2012-05-13T17:56:58.863 回答