Objective-C HMAC 256与Node.js的区别

伙计们,

我正在尝试生成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]; 

任何人有任何想法的差异的原因可以是?