最近几天,我对如何在目标 C 中实现 PBKD2 进行了大量研究和测试。虽然我找到了许多可行的答案,但所有尝试都给了我比 django 1.4 不同的结果。我举了一些我试图生成哈希的例子。
作为密钥,我添加了从服务器下载的盐(django 格式:$$),作为数据,我添加了用于创建 django 用户的相同密码。不幸的是,我的结果哈希字符串与存储在 Django 数据库中的完全不同。示例功能代码:
NSData *hmacForKeyAndData(NSString *key, NSString *data)
{
const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
return [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)];
}
谁能给我一点建议,出了什么问题?