AES 256加密/解密初始化向量混淆

时间:2014-08-21 21:21:40

标签: encryption aes block-cipher

首先让我说我是加密领域的新手。话虽如此,我正在开发一个应用程序,需要存储在数据库表中加密的用户名,密码和全名(第一个,中间的,最后一个)。我正在阅读一篇文章,对于每次发生的加密,IV应该是随机的,并且我可以将IV添加到密文。

这是令人困惑的地方。如果我将文本添加到文本中,我将如何解密该字符串,除非我确切地知道字符串中的IV结尾和密文开始的位置?此外,我正在阅读我应该通过在实际加密之前附加或添加其他文本来填充字符串。 I.E.,我创建并添加或附加到明文的一些字符串,我对腌制的理解是否正确?

如果我将加密的用户名和密码存储在数据库中,我应该在需要对用户进行身份验证时担心任何问题。用户输入字段后,是否可以可靠地加密用户名和密码,然后将加密值与数据库中的加密列进行比较?看起来这似乎是一个问题,如果是这样,建议的处理方式是什么?

1 个答案:

答案 0 :(得分:0)

长度取决于使用的加密算法。 AES的IV长度总是16个字节,因此在解密时,您可以将前16个字符作为IV,然后在第16个字节后开始解密。

是的,IV就像盐一样,只是当我们进行散列而不是加密时,通常会引用盐。盐的长度也是固定的。

如果您只需要对用户进行身份验证,则散列是在数据库中存储密码的首选方式。