为什么我们通常在将“密钥”应用于任何加密算法之前先对其进行哈希处理?

时间:2018-07-09 15:15:36

标签: security encryption hash password-encryption

我正在制作一个用于Android的密码管理器应用程序,以便在需要时存储和检索密码。我想先加密我的密码,然后将其存储在数据库中。我看到了一个教程,在该教程中,他首先对“密钥”进行哈希处理,然后将其应用于AES算法以加密密码。我不明白他为什么这样做。

1 个答案:

答案 0 :(得分:0)

我猜想“密钥”是某种密码短语,只有密码管理器才知道,它会加密所有密码-密码被加密,以便以后可以解密并返回。

如果是这种情况,请不要对密钥进行哈希处理。最好从中“派生”加密密钥。例如,“关键字”可以是“夏季的降雪量”。 HKDF是密钥派生算法的一个示例,该算法可以获取此“密钥”并生成一个强大的加密密钥,然后将其与AES加密一起用于加密密码。这是我可以解释您的问题的“哈希键”的唯一方法。

此外,除了对密码进行加密之外,防止篡改加密数据也是一个好主意。做到这一点的一种好方法是选择AES加密的GCM模式,其中包括一个可以检测篡改的“身份验证标签”。