【发布时间】:2017-07-07 06:06:26
【问题描述】:
我一直在阅读对称加密,如果我想在我的加密中添加盐,那么我需要向希望解密内容的最终用户提供盐值,这是正确的吗?此外,如果我希望使用初始化向量(IV),我还需要将其提供给正在解密的最终用户是否正确?还是只有我在加密内容时才需要这些东西?
【问题讨论】:
-
盐通常只在散列数据时使用,而不是加密它。例如,Wikipedia 的第一行声明
a salt is random data that is used as an additional input to a one-way function that "hashes" a password or passphrase.在对称加密中,salt 没有任何作用——它只是在任何人使用有效解密密钥解密后位于消息开头的额外数据。 -
我想我误解了盐的用途。我在加密字符串或其他任何内容的情况下指的是盐。所以本质上它只是一个可以在加密之前附加到值的随机值,这听起来对吗?
-
不,这听起来不对。在加密之前将随机字节附加到数据上没有任何效果。在关于盐的问题中添加更多信息,参考上下文是什么。同样只是散列密码,即使使用盐也不足以生成加密密钥,应该使用密钥派生函数,如 PBKDF2。
标签: encryption salt