我使用C#RijndaelManaged类进行AES加密。密钥和IV是使用Rfc2898DeriveBytes类从输入密码和salt生成的。我的问题是,如果有人获得输入密码而不是盐,那么打破加密有多难?
答案 0 :(得分:0)
检索密钥和IV几乎是不可能的。实际上,有时存储在源代码中的静态盐秘密盐另外用于公共随机盐。这样,攻击者除了使用salt和密码哈希值之外,还需要获取源代码或运行时代码。
这种方案 需要足够大的(秘密)盐,比如128字节。最好使用串联来创建公共和秘密组合盐。
当然,总是可以搞乱加密,例如,易受填充oracle攻击,忘记加密等认证标签(HMAC)等。