2017-02-17 45 views
0

我一直在阅读对称加密,它出现如果我想添加盐到我的加密,然后我需要提供盐值给最终用户以及希望解密内容, 它是否正确?另外,如果我希望使用初始化向量(IV),我还需要将解密的最终用户提供的是正确的?或者,当我对内容进行加密时,这只是我需要的东西?Symetric加密 - 盐和IV

+2

通常仅在散列数据时使用盐,而不是对其进行加密。例如,[Wikipedia]的第一行(https://en.wikipedia.org/wiki/Salt_(cryptography))指出'salt是随机数据,用作单向函数的附加输入, “散列”密码或密码。“在对称加密中,salt不会有任何用处 - 它只是在有解密密钥的任何人解密后才会出现的额外数据。 –

+0

我想我误解了盐的目的。我指的是在加密字符串或其他方面的盐。所以本质上它只是一个随机值,可以在加密之前附加到值上,这听起来是对的吗? – Scott

+2

不,听起来不对。在加密之前将一个随机字节附加到数据上不会产生任何效果。在关于盐的问题中添加更多信息,参考背景是什么。即使使用salt也不足以生成加密密钥,应该使用诸如PBKDF2之类的密钥派生函数。 – zaph

回答

2

IV并不需要是保密的,并且通常在加密数据前加上以使其在解密期间可用。 IV通常是随机字节序列,即算法块大小的长度。

在问题中使用的salt未定义为加密,您需要提供有关盐问题与加密相关的更多信息。有时从密码导出加密密钥时使用salt。