民间,
我正在尝试生成Hmac256摘要,但在node.js和objective-c中获得了不同的结果。不知道为什么。
这是我认为正确的节点代码。
var crypto = require('crypto')
var result = crypto.createHmac('sha256', 'mykey').update('mydata', 'utf-8').digest('base64');
这是我的Objective-c代码:
const char *cKey = [@"mykey", cStringUsingEncoding:NSUTF8StringEncoding];
const char *cData = [@"mydata" cStringUsingEncoding:NSUTF8StringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)];
NSString *hash = [Base64 encode:HMAC];
任何人都知道差异的原因在哪里?