在密码安全性方面,有些人会同意存储密码哈希值,这可以对受损模型和数据进行统计防御.
有些人似乎不同意的是如何处理盐.你可以采用无数种技术来保护盐,但许多专家会建议它们只是对安全模型毫无意义的混淆,随着时间的推移,模型将暴露出来,我发现自己不同意有了这个,但我可能不理解另一个观点.
我不明白的是,如果你的模型受到损害,你为什么要采取完全妥协而不是部分妥协呢?如果您的安全模型分布在不同的安全基础架构中,那么部分折衷甚至可能不是问题.(如果您执行类似的操作,比如加密盐并从更不安全的环境中检索加密密钥,这种环境不太可能受到损害)
我假设妥协并不总是100%.我从未有过被黑客攻击的系统,也没有被黑客入侵,所以我没有完整的图片.
我有一段时间没有写加密了,忘记了一些东西。
我记得为了让使用相同密钥的相同数据的输出不同,我想在字节数组的一端对数据加盐,然后使用 CBC 模式,以便盐可以发挥作用。
但是我不记得加密的方向。盐应该放在位置0,然后要加密的数据放在它后面,还是盐放在最后?我知道当盐是链中的第一个块时,CBC 模式效果最好。
另外,AES 256 的块大小是多少?wiki 文章说所有 AES 都使用 128 位块大小,并且 256 部分仅与密钥长度相关。那么 AES 256 的盐应该是 16 字节还是 32 字节?
我使用的是 AesCryptoServiceProvider,而不是 RijndaelManaged。