纯文本加密问题

时间:2017-06-08 11:38:35

标签: c# sql-server encryption cryptography

我有一个用纯文本填充的数据库列。管理人员认为将密码作为纯文本存储在数据库中风险太大。所以问题是,我需要将给定列中的所有值传递给加密文本,当然还要修改C#中的业务逻辑。从程序上的知识应该读取数据库中的加密值,解密数据并使用它,当然如果新用户注册我需要将ecrypted值存储在数据库中。 (但这不是问题。) 那么有没有一种正确而安全的方法来加密整个列(它已经被用作纯文本)而不会破坏软件的行为?

1 个答案:

答案 0 :(得分:0)

1)创建新列,如hash_pwd;

2)用哈希等效的当前密码填写;

3)更改软件以使用哈希,而不是普通密码;

4)使用普通密码删除或清除旧列。

PS:最好不要存储密码的简单哈希(MD5 / SHA),而是添加像HASH( plain_password + "my_string" )这样的静态字符串。这将保护数据库免受哈希字典攻击 - 例如如果我知道HASH( "123456" )的结果,并且可以使用密码123456找到所有用户。