0

当 ecryptfs 等软件使用 AES 时,它会要求输入用户密码(例如“password123”)。

AES 算法本身不需要用户密码。那么“password123”在哪里被投入到数学中呢?

我正在制作一个使用密码加密某些数据的 C 函数。我知道使用 OpenSSL 和 aes 密钥的典型方法,但我不知道如何集成用户密码。

4

1 回答 1

6

您需要使用密钥派生函数 (KDF)。基于密码的密钥派生函数 2 (PBKDF2) 是当前最常用的方法。

OpenSSL 可能会暴露 PBKDF2,它通常需要一个密码和一个迭代计数(现代系统应该使用类似 100000 或更高的值……提高数字直到大约需要 0.3 秒)和一个输出长度。它也可能需要一个散列函数,SHA-2 系列(SHA256、SHA384、SHA512)中的某个函数将是一个不错的现代选择。

于 2016-11-04T04:03:06.287 回答