2009-07-10 83 views
1

我正在生成* .reg文件使用的代码将有一些重要的数据。用户将把它保存到注册表中。加密注册表内容

在应用程序启动我从注册表中获取价值和进行一些验证..

但问题是,在注册表中和的* .reg文件的信息都存储在纯文本格式。

如何创建加密的* .reg文件。

然后在应用程序启动。如何解密从注册表中的值(加密)..

我读了一些文章。但它们与文件的加密/解密有关。 这里我正在处理“*。reg”文件和注册表本身

回答

0

对不起Mohsan,这是错误的方式。 d。显示了正确的方式。

想象一下,如果你加密.reg文件。之后会发生什么?你会喜欢将它导入到注册表中,但是在你需要解密它之前,只需将纯文本输入到注册表中即可以读取每个人。

所以不要加密您的密钥或值名称。在注册表中加密你的值的内容。所以你的程序可以读入它,解密并使用它。这里有一个例子:

[HKLM\Key\SubKey\SubSubKey\etc] 
@="" 
"Password"="KALSDJLSIWNKLDNISNDLKWDNLAW" 

所以你程序打开键,读值并计算该值解密算法,它解析为:“我的秘密密码”

1

如果您的程序是唯一一个从注册表中读取值,您可以将它们加密并在每次使用时解密它们。 这种方式导出的.reg文件也将包含加密数据。

如果有其他程序使用这些数据,您必须确保他们可以访问和了解他们所需的信息。

0

有什么意义?任何人都可以使用像Regmon这样的工具来找出你设置的值。

您应该只需加密值并在应用程序读取它们时解密它们(假设您的应用程序是唯一访问该数据的应用程序)。但请记住,您必须将解密密钥存储在可执行文件的某个地方,这可以打开一大堆蠕虫。

0

您无法透明地加密注册表。

我会看公共/私人密钥或对称密钥加密方法。

这里是一个快速的项目中使用RSA: http://www.codeproject.com/KB/security/RSACryptoPad.aspx

在资源存储你的钥匙可能是为了保护内容的最好方式,但要注意:如果你同时存储密钥和密文的相同的系统(例如,在您的程序和注册表中),无法完全阻止系统的所有者读取纯文本。