1

我一直在寻找大约一周的时间来找到一个 C 语言示例,该示例可以使用 BSAFE 或 openssl 加密库作为“将此密码转换为适当的散列形式进行存储”,生成体面的盐并做一个可以说是足够的轮数。

有谁知道婴儿床的例子吗?我很懒,不想自己费力地弄清楚这一切,因为这是另一个项目的一个小(但关键)部分。

谢谢-分贝

4

1 回答 1

4

我将演示如何使用 openssl api 生成哈希。

#include <openssl/evp.h>

// more ITERATIONs, more secure. But you should consider the performance on your target machine
ITERATION = 512000; 

// this will be the result of PBKDF2-HMAC-SHA1  
int SHA1_LEN = 20;
unsigned char* out = (unsigned char*)calloc(SHA1_LEN, sizeof(unsigned char));

int SALT_LEN = 5;
unsigned char* salt = (unsigned char*)calloc(SALT_LEN, sizeof(unsigned char));
RAND_bytes(salt, SALT_LEN);

pwd = ""; /*your password here */
PKCS5_PBKDF2_HMAC_SHA1(pwd, strlen(pwd), salt_value, SALT_LEN, ITERATION, SHA1_LEN, out);
于 2013-08-22T09:17:39.667 回答