很抱歉,如果这是重复的,但我找不到任何与数据库加密无关的内容。我的问题不在于数据库。我有一组使用RijndaelManaged
加密的文件。在加密代码中,我使用Rfc2898DeriveBytes
生成密钥,给定密码和盐以及一定数量的迭代。实际上,盐并不是安全存储的(只是一个字符串)。
我想知道:有权访问我的代码的人可以轻松获取盐(例如,反汇编dll),当然还有迭代次数。
这是多少安全风险,理所当然地认为密码本身并不容易检索(是的,现在让我们理所当然)?
我假设没有密码解密是不可能的,或者至少需要一些时间来暴力破解......或者是否可能对解密文件进行一些分析?
一个明显的担忧是被窃取的代码比被盗的数据库更容易被发现......
答案 0 :(得分:0)
简而言之,盐可以用明文保存。但是,您应该为文件中的每个密码存储唯一的salt(请参阅this)。这样,没有人可以为存储在文件中的所有密码创建Rainbow table(请注意,他们仍然可以为文件中的一个密码创建彩虹表)。
有关整个散列/密码存储过程的更多上下文,请参阅: