【发布时间】:2016-05-24 17:06:03
【问题描述】:
我在 DevC 中使用 OpenSSl。我在编写 PBKDF 时遇到问题。有人建议我使用名为 PKCS5_PBKDF2_HMAC 的默认函数。我已经访问了许多在线链接,但无法使其正常工作。我的 main() 代码如下
unsigned char pass[1024]; // passphrase read from stdin
unsigned char salt[1024]; // salt
int iter=1000, keylen=128; // iteration
unsigned char result[1024]; // result
PKCS5_PBKDF2_HMAC (pass, strlen(pass), salt, strlen(salt), iter, EVP_MD(), keylen , result);
我只有两个编译错误,如下:
- 函数“PKCS5_PBKDF2_HMAC”的参数太少
- “EVP_MD”之前的预期表达式
为了解决问题,我检查了头文件并验证了我提供了正确的参数和正确的顺序,但我没有解决方案,我只是感到困惑。
【问题讨论】:
-
请注意,您不应使用这种大小的盐。你应该只在代表空终止字符串的字符数组上使用
strlen,而不是数组。 -
@Professor:“我只有两个编译错误,如下所示……” - 请复制并粘贴您的exact错误消息正在接收,包括编译器用来指示问题表达式的小刻度线。您的
pass和salt是未初始化的垃圾。keylen应该是字节,而不是位。
标签: openssl cryptography dev-c++ pbkdf2