Pit*_*DBA 4 .net security encryption configuration app-config
如果开发人员在自己的计算机上使用RSAProtectedConfigurationProvider加密连接字符串app.config部分,并随后将其部署到用户的工作站,那么该用户的工作站(或服务器)是否可以自动解密连接字符串?
是否需要某种关键的出口/安装?这是如何运作的?我意识到它不是防弹的.我正在寻找关于部署是否容易和/或使用这种加密连接字符串的建议.
有可能的.有API可以执行它(查看System.Security.Cryptography命名空间),或者从命令行可以使用aspnet_regiis:
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
Run Code Online (Sandbox Code Playgroud)
当然,在使用加密时,您只需要通过保护密钥的问题来替换保护数据(您的连接字符串)的问题.
在您的示例中,正如您所知,因为您说您知道它不是防弹的,用户将需要访问密钥容器,以便能够解密加密的连接字符串.
此外,任何掌握包含导出密钥对的XML文件的人都可以这样做.
UPDATE
部署过程如下:
如果RSAProtectedConfigurationProvider运行应用程序的Windows标识具有RSA密钥容器的读取权限,则使用受保护的配置提供程序加密的部分将自动解密.