我正在使用具有一些重要数据的代码生成 * .reg 文件。并且用户将其保存到注册表中。
在应用程序启动时,我从注册表中获取值并执行一些验证..
但问题是在注册表和 * .reg 文件中,信息以纯文本格式存储。
如何首先创建加密的 * .reg 文件。
然后在应用程序启动。如何解密注册表中的值(加密)..
我读了一些文章。但它们与文件的加密/解密有关。 在这里我正在使用“* .reg”文件和注册表本身答案 0 :(得分:1)
如果您的程序是唯一一个从注册表中读取值的程序,您可以将它们保存为加密并在每次使用时对其进行解密。 这样导出的.reg文件也将包含加密数据。
如果有其他程序使用这些数据,您必须确保他们可以访问和理解他们需要的信息。
答案 1 :(得分:0)
重点是什么?任何人都可以使用像Regmon这样的工具来找出你设置的值。
您只需加密值并在应用程序读取它们时解密它们(假设您的应用程序是唯一访问该数据的应用程序)。但请记住,您必须将解密密钥存储在可执行文件中的某个位置,这会打开另外一堆蠕虫。
答案 2 :(得分:0)
您将无法透明地加密注册表。
我会查看公钥/私钥或对称密钥加密方法。
这是一个使用RSA的快速项目: http://www.codeproject.com/KB/security/RSACryptoPad.aspx
将密钥存储在资源中可能是保护内容的最佳方式,但要注意:如果将Key和Cyphertext存储在同一系统上(例如,在程序和注册表中),则不会完全阻止系统所有者阅读明文的方法。
答案 3 :(得分:0)
对不起Mohsan,这是错误的方式。 d。表现出正确的方式。
想象一下,如果加密.reg文件。之后会发生什么?你想将它导入注册表,但在你必须解密它之前,所以只有普通文本进入注册表,每个人都可以阅读。
所以不要加密你的密钥或值名称。在注册表中加密值的内容。所以你的程序可以读取它,解密它并使用它。这是一个例子:
[HKLM\Key\SubKey\SubSubKey\etc]
@=""
"Password"="KALSDJLSIWNKLDNISNDLKWDNLAW"
因此,程序打开密钥,读取值并计算该值的解密算法,将其解析为:“我的密码”