有可能的。有API可以做到这一点(看看 System.Security.Cryptography 命名空间),或者从命令行可以使用aspnet_regiis:
System.Security.Cryptography
aspnet_regiis -pc -exp : create an exportable key pair aspnet_regiis -px : export an RSA key pair to an XML file aspnet_regiis -pi : import an RSA key pair from an XML file aspnet_regiis -pa : add access for an account to a key container
当然,在使用加密时,您只需要通过保护密钥的问题来替换保护数据(您的连接字符串)的问题。
在您的示例中,正如您所知,因为您说您知道它不是防弹的,用户将需要访问密钥容器,以便能够解密加密的连接字符串。
此外,任何掌握包含导出密钥对的XML文件的人都可以这样做。
的 UPDATE 强>
部署过程如下:
使用受保护的配置提供程序加密的部分,例如 RSAProtectedConfigurationProvider 如果运行应用程序的Windows标识具有RSA密钥容器的读取权限,则将自动解密。
RSAProtectedConfigurationProvider