c - HMAC-SHA1 的 Objective-C 示例代码

我需要在 Objective C 中生成 HMAC-SHA1。但我没有找到任何可行的方法。我尝试了 CommonCrypto,使用 CCHMAC,但没有用。我需要生成一个hmac,然后生成HOTP号。

有人有 Objective C 或 C 的示例代码吗?

最佳答案

以下是使用 SHA-256 生成 HMAC 的方法:

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

NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC
                                      length:sizeof(cHMAC)];

NSString *hash = [HMAC base64Encoding];

我不知道 HOTP 库,但如果我没记错的话,算法非常简单。

https://stackoverflow.com/questions/756492/

相关文章:

iphone - 带有 "Go"按钮而不是返回的 iOS 键盘

ios - 将输入 View 添加到文本字段 iOS 8 时出错

objective-c - Foo 类在 MyApp 和 MyAppTestCase 中都实现了。将

iphone - UIPageViewController,如何在不打乱数据源指定顺序的情况下正确跳

ios - 每次 Xcode 重新启动时 View 错位

ios - Xcode 如何加载主 Storyboard ?

ios - NSNotificationCenter 的帖子导致 "EXC_BAD_ACCESS"异

ios - 是否在 iOS SDK 中的任何位置定义了 HTTP 状态代码?

iphone - 在 NSUserDefaults 中存储值是否有任何限制?

ios - 在代码生成的 UIView 上绘制 UIBezierPath