2

皆さん、

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];

違いの理由がどこにあるのか、誰にも分かりますか?

4

0 に答える 0