HMACSHA1对NSData加密

来源:互联网 发布:linux 所有文件大小 编辑:程序博客网 时间:2024/06/05 11:39

由于项目中需求跟无线AP通讯,通讯协议中有一部分data 需要进行HMACSHA1加密,在Github和stackoverflow上找了一些方法发现使用中都出错了,很多都是对NSString类型消息加密,而我需要对一定格式的data加密,我做了一些改变。代码如下:

#import <Foundation/Foundation.h>@interface HJHMACSHA1 : NSObject+ (NSString *)HMACSHA1:(NSData *)data withKey:(NSString *)key;@end
#import "HJHMACSHA1.h"#import <CommonCrypto/CommonHMAC.h>@implementation HJHMACSHA1+ (NSString *)HMACSHA1:(NSData *)data withKey:(NSString *)key{    NSParameterAssert(data);    NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];    NSMutableData *hMacOut = [NSMutableData dataWithLength:CC_SHA1_DIGEST_LENGTH];    CCHmac(kCCHmacAlgSHA1,           keyData.bytes, keyData.length,           data.bytes,    data.length,           hMacOut.mutableBytes);    NSString *hexString = @"";    if (data) {        uint8_t *dataPointer = (uint8_t *)(hMacOut.bytes);        for (int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {            hexString = [hexString stringByAppendingFormat:@"%02x", dataPointer[i]];        }    }    return hexString;}@end
0 0
原创粉丝点击