c - 如何使用用户密码进行 aes 加密?

标签 c security encryption cryptography ecryptfs

当 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/

相关文章:

c - 如果我的代码只传递了一个文件*,我的代码如何识别传递给 fopen() 的模式?

php - 'is_numeric' 对 sql 注入(inject)有多安全

android - 展示如何使用 Android ID 认证的示例代码

java - HMAC解密

Java rsa解密模式行为

c - 冗余或良好实践 - 结构

c - 使用命名管道 C 读写

c - 是否有标准宏来检测需要对齐内存访问的架构?

php - X-XSRF-TOKEN 和 X-CSRF-TOKEN 有什么区别?

javascript - 客户端代码 Web 应用程序的许可系统