· 9 years ago · Nov 16, 2016, 05:48 AM
1strURL = [NSString stringWithFormat:@"%@",strURL];
2
3NSString *strParam = [NSString stringWithFormat:@"oauth_consumer_key=%@&oauth_nonce=%@&oauth_signature_method=%@&oauth_timestamp=%@&oauth_version=%@",PublicKey,strRandom,@"HMAC-SHA1",strTime,@"1.0"];
4NSLog(@"params = %@",strParam);
5
6NSArray *array=[[self manuallyUTF8Encoding:strURL]componentsSeparatedByString:@"?"];
7NSString *strURL1= array.count > 0 ? array[0] : @"";
8NSString *strParam1=[self manuallyUTF8Encoding:strParam];
9
10
11NSString *signatureBase = [NSString stringWithFormat:@"%@&%@&%@",strServiceName,strURL1,strParam1];
12
13NSString* data1 = signatureBase;
14
15const char *cKey = SecretKey ;
16
17
18const char *cData = [data1 cStringUsingEncoding:NSUTF8StringEncoding];
19
20unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH];
21CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
22NSData *hash = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)];
23
24NSString *sig = [[NSString alloc]initWithData:hash encoding:NSUTF8StringEncoding];
25NSLog(@"%@",sig);
26NSString* signature = [self base64forData:hash];
27
28
29
30
31NSString *signature1=[self manuallyUTF8Encoding:signature];
32
33return signature1;
34
35if (j < length) {
36 value |= (0xFF & input[j]);
37 }
38}
39NSInteger theIndex = (i / 3) * 4;
40output[theIndex + 0] = table[(value >> 18) & 0x3F];
41output[theIndex + 1] = table[(value >> 12) & 0x3F];
42output[theIndex + 2] = (i + 1) < length ? table[(value >> 6) & 0x3F] : '=';
43output[theIndex + 3] = (i + 2) < length ? table[(value >> 0) & 0x3F] : '=';