我一直在寻找大约一周的时间来找到一个 C 语言示例,该示例可以使用 BSAFE 或 openssl 加密库作为“将此密码转换为适当的散列形式进行存储”,生成体面的盐并做一个可以说是足够的轮数。
有谁知道婴儿床的例子吗?我很懒,不想自己费力地弄清楚这一切,因为这是另一个项目的一个小(但关键)部分。
谢谢-分贝
我一直在寻找大约一周的时间来找到一个 C 语言示例,该示例可以使用 BSAFE 或 openssl 加密库作为“将此密码转换为适当的散列形式进行存储”,生成体面的盐并做一个可以说是足够的轮数。
有谁知道婴儿床的例子吗?我很懒,不想自己费力地弄清楚这一切,因为这是另一个项目的一个小(但关键)部分。
谢谢-分贝
我将演示如何使用 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);