[我使用VB 2013创建了一个桌面应用程序,其中一项要求是对App.config文件进行加密-存储数据库连接详细信息(用户名,密码)的文件。
在对App.config进行加密之前,我可以在其他PC上运行.exe文件(实际上是复制粘贴该.exe文件),但是在加密后它无法正常工作。我想念什么吗?
这是我App.config中的内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>encrypted_data_random_characters</CipherValue>
</CipherData>
</EncryptedData>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>encrypted_data_random_characters</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
</configuration>
DPAPI是特定于机器的。部分原因是,在一台计算机上加密的内容无法在另一台计算机上解密。如果您希望能够一次加密然后在任何地方解密,那么您将需要使用其他选项。我有这些页面的链接:
How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI
How To: Encrypt Configuration Sections in ASP.NET 2.0 Using RSA
在此线程中:
Protected Configuration (Encrypting Config Files)
前一段时间。它们现在可能已过时,但即使在那时,它们仍显示出两个选项之间的差异。您可能需要寻找RSA选项的新版本/等效版本,或者在要解密的计算机上进行加密。