抱歉,如果这是一个重复,但我找不到任何不是以某种方式与DB加密相关的东西。我的问题不是DB。我有一组用RijndaelManaged
加密的文件。在加密代码中,我使用Rfc2898DeriveBytes
来生成给定密码和盐以及一定次数的迭代的密钥。碰巧的是,盐不是安全存储的(只是一个字符串)。
我想知道:访问我的代码的人可以很容易地获得盐(例如反汇编dll),当然还有迭代的次数。
假定密码本身不那么容易检索(是的,让我们现在假定它是理所当然的),那么这样做的安全风险是什么?
我假设没有密码解密是不可能的,或者至少需要一些时间来暴力破解…或者是对解密文件的分析?
一个明显的问题是被盗的代码比被盗的数据库更不容易检测…
总之,盐以明文形式储存是很好的。但是,您应该在文件中为每个密码存储一个惟一的salt(参见此)。这样,没有人可以为文件中存储的所有密码创建彩虹表(注意,他们仍然可以为文件中的一个密码创建彩虹表)。
有关整个哈希/密码存储过程的更多上下文,请参阅:
哈希