.net 如何保护Sql应用程序角色密码

.net 如何保护Sql应用程序角色密码,.net,sql-server,security,encryption,.net,Sql Server,Security,Encryption,请不要回复如何/为什么嵌入密码是个坏主意。我知道他们的一切,我已经看过了这篇没有给我答案的帖子 关于我的问题 我正在程序中使用SQL应用程序角色。因此,最终用户不知道角色名和密码是什么,因为它不适用于他们,如果他们知道角色名和密码是什么,实际上是一种安全风险 我考虑将角色/pw存储在一个安全的远程服务器中。但是我必须给用户访问pw的权限。加密pw并将其存储在配置文件中不起作用,因为解密例程将在代码中 基本上,我能想到的一切都只能掩盖密码,但不能确保密码的安全。最安全的方法是什么?我不知道。有很多

请不要回复如何/为什么嵌入密码是个坏主意。我知道他们的一切,我已经看过了这篇没有给我答案的帖子

关于我的问题

我正在程序中使用SQL应用程序角色。因此,最终用户不知道角色名和密码是什么,因为它不适用于他们,如果他们知道角色名和密码是什么,实际上是一种安全风险

我考虑将角色/pw存储在一个安全的远程服务器中。但是我必须给用户访问pw的权限。加密pw并将其存储在配置文件中不起作用,因为解密例程将在代码中

基本上,我能想到的一切都只能掩盖密码,但不能确保密码的安全。

最安全的方法是什么?我不知道。有很多方法可以让它变得不那么明显

一个建议是对程序中的一些无害数据使用异或,比如“按任意键继续”


realPassword就我所知,您可以使用MD5哈希库对其进行编码,这样即使他们知道它是用MD5加密的,也无法解密,因为他们没有密钥。万一他们能拿到钥匙恐怕你不能安全地保存,因为总是会有一个易受攻击的登录名或密钥,它只会像您自己已经提到的那样模糊对象。除了模糊和限制用户/滚动的权限之外,没有任何解决方案,这样密码的泄露就不会是灾难性的。您要求的是一些不可能的事情。即使您可以在代码中加密pw,用户也会被拒绝仍然可以嗅探他们自己的网络连接。你不能。如果用户可以运行客户端,并且客户端可以访问密码,则用户可以访问密码。您可以使它变得模糊或复杂,但无法从足智多谋的攻击者那里保护它。
realPassword <- SHA256(myByteArray XOR getBytes(userMessage001))