C# 如何在程序中存储数据库密码,以便它访问数据库?

C# 如何在程序中存储数据库密码,以便它访问数据库?,c#,C#,我需要我的程序能够连接到某种数据库,例如SQL,显然程序需要密码才能访问数据库。设置一个带有密码的硬编码变量就足够了,但我想这是一个真实的情况。所以我希望它能被安全地存储,而根据我所知,将密码硬编码到代码中并不是一个好主意。那我怎么做呢?我搜索了多个论坛,主题,也许有答案,但我不会撒谎,这很复杂。有什么帮助吗?这是一个广泛的问题,但简单的答案是,您不会存储它,而是让用户提供密码 通常,在应用程序和数据库之间会有一个API服务器,而不允许直接访问数据库。API将有一个接受用户名和密码并返回jwt或

我需要我的程序能够连接到某种数据库,例如SQL,显然程序需要密码才能访问数据库。设置一个带有密码的硬编码变量就足够了,但我想这是一个真实的情况。所以我希望它能被安全地存储,而根据我所知,将密码硬编码到代码中并不是一个好主意。那我怎么做呢?我搜索了多个论坛,主题,也许有答案,但我不会撒谎,这很复杂。有什么帮助吗?

这是一个广泛的问题,但简单的答案是,您不会存储它,而是让用户提供密码


通常,在应用程序和数据库之间会有一个API服务器,而不允许直接访问数据库。API将有一个接受用户名和密码并返回jwt或其他某种授权令牌的路由。对API的后续调用还将发送用于验证请求的令牌。您可以在本地存储授权令牌,但应尽可能避免其他应用程序使用它。

将其放入配置文件中。配置文件仍必须存储在用户的计算机上,以便仍可访问。所以我想我必须以某种方式对它进行加密……加密并没有什么好处。要让应用程序读取它,它需要能够对其进行解密。如果应用程序可以对其进行解密,那么有权访问您的应用程序的人就有可能对其进行解密。为什么这是一个问题?最终用户需要保护他们的机器和数据库。您肯定不是在分发一个直接连接到中央数据库的应用程序吗?如果是这样,这是一个非常糟糕的想法。用这样的方式来看:如果用户有一个直接连接到数据库的客户端应用程序,或者不知何故使用了访问数据库的凭据,那么就认为您的数据库受到损害,黑客可以访问它。这个问题太宽泛了,无法给出答案,IMHO,但您需要了解web API。谢谢您的时间和答案!我想我明白了;DSo。。。我需要让客户端向API服务器发送用户详细信息,然后该服务器连接到数据库,然后检查详细信息是否正确,如果正确,则允许客户端连接到主程序…@Dawid客户端从不直接与数据库对话。它总是通过API。是的,你说的细节可能是用户名和密码。阅读jwt和密码哈希。但在那之后,应用程序将继续调用API。只有您的服务器才能访问数据库。让直接访问您的DBSo是不安全的,因为服务器API基本上是一个管理员客户端,它路由所有请求。我想我开始理解你的意思了。是的,因为这样客户端就不会得到任何信息,因为一切都是通过API服务器的解释程序来完成的。虽然那时我需要将API的服务器IP包含到客户端代码中,但我想这不是问题。无论如何,谢谢你的时间和回复!我想我明白了;P