+ (NSString *)hmac_sha1:(NSString *)plaintext withKey:(NSString *)key
{
NSData *cKey = [self hexStringToNSData:key]; //key转换为二进制数据
const char *cData = [plaintext cStringUsingEncoding:NSUTF8StringEncoding];
uint8_t cHMAC[CC_SHA1_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA1, [cKey bytes], cKey.length, cData, strlen(cData), cHMAC); //hmac
NSString *hash;
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) //转换到output
[output appendFormat:@"%02x", cHMAC[i]];
hash = output;
return hash;
}
<pre name="code" class="objc">+ (NSData*)hexStringToNSData:(NSString*)hexStr
{
hexStr = [hexStr stringByReplacingOccurrencesOfString:@" " withString:@""];
NSMutableData