当 ecryptfs 等软件使用 AES 时,它会要求输入用户密码(例如“password123”)。
AES 算法本身不需要用户密码。那么“password123”从哪里算起呢?
我正在努力制作一个使用密码加密某些数据的 C 函数。我知道使用 OpenSSL 和 aes key 的典型方法,但我不知道如何集成用户密码。
最佳答案
您需要使用 key 派生函数 (KDF)。基于密码的 key 派生函数 2 (PBKDF2) 是当前最常用的方法。
OpenSSL 可能会公开 PBKDF2,它通常需要一个密码和一个迭代计数(现代系统应该使用类似 100000 或更高的数字……增加数字直到大约需要 0.3 秒),以及一个输出长度。它还可能采用散列函数,SHA-2 系列(SHA256、SHA384、SHA512)中的某些函数将是一个不错的现代选择。
关于c - 如何使用用户密码进行 aes 加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414703/