【发布时间】:2013-01-02 11:52:01
【问题描述】:
我有一个用于加密和解密数据库密码的课程。我在配置中有一个密钥,在我的代码中有一个盐。
如果有人可以访问 dll 和数据库,那么他可以通过将 dll 导入他的应用程序来解密我的数据。
有什么东西可以保护dll之外的调用方法
【问题讨论】:
-
您必须散列您的密码。这样,就不可能解密它们。
-
您的攻击者可以简单地反编译 DLL 并提取密钥。您应该将密钥存储在环境中的安全存储位置。
-
@SLaks 您通常不能将密码的哈希值发送到数据库以进行身份验证。
-
@StefanH,现在对我来说,问题似乎并不像 OP 试图加密该数据库的连接字符串,而是在数据库中存储一些秘密信息(密码)。同样在重新阅读问题后,您的解释也是可能的。
-
@AlexeiLevenkov - 你是对的,OP 使用的精确工作流程并不像我最初想象的那样清晰。我绝对同意 SLaks,因为如果存储的密码不需要验证应用程序,那么它们应该被散列,而不是以加密状态存储。我明确阅读了这个问题,因为 OP 担心存储用于启动连接的凭据。
标签: c# visual-studio-2010 security assemblies