.net - 存储 SQL 连接详细信息 - 如何安全地加密每个用户?

标签 .net configuration encryption

我有一个连接到多个 SQL Server 的应用程序,用于监视和其他任务。目前,我只支持可信身份验证,因为我不必存储任何敏感信息。我想添加使用 SQL 身份验证(用户名/密码)的功能。

在 session 之间存储这些敏感数据的最佳方法是什么?是否有可供我使用的仅限用户使用的证书或加密 key ?使用每个用户随机生成的注册表项来加密此信息是否足够安全?如果有一种方法可以让我使用 key (或创建 key 并存储它),而计算机上的其他用户无法访问它,那就太理想了。

我了解加密,所以我不是在寻找教程 - 我正在寻找最安全的方法来保护我的应用程序的一个用户的配置数据免受其他用户的影响。

最佳答案

使用Data Protection API (aka. DPAPI) .每次使用都有一个受其密码保护的 key 。您将密码/连接字符串存储在 .config 文件中,.Net 框架具有使用机器 key 、用户 key 或 RSA key 加密/解密配置部分的方法。不要重新发明轮子做你自己的定制方案。使用注册表项绝对不是一个好主意。安全来自 secret ,而不是访问保护:它必须依赖于用户提供 secret (登录时的密码),而不是不可访问的注册表项。

How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI

关于.net - 存储 SQL 连接详细信息 - 如何安全地加密每个用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1071263/

相关文章:

c# - 在 C# 控制台应用程序 app.config 中嵌入 webclient 的凭据?

c# - 从 float 转换为 TimeSpan

configuration - 像 resharper 一样在 Visual Studio 中自动添加关闭引号

javascript - 指向局部变量时未定义错误属性

php - 使用 PHPmyAdmin 加密/解密 MySQL 数据库

c# - 用jquery加密用户密码,用C#解密

c# - 使用 XSD.exe 自定义类名生成的类

c# - 在这种特定且非常简单的情况下,为什么 Debug 不同于 Release?

java - Guice 和一般应用程序配置

php - bin2hex(random_bytes()) 根据输入有多少个字符?