84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
baseStr = [[NSString alloc] initWithData:[QNUrlSafeBase64 decodeString:HIMAStr] encoding:NSUTF8StringEncoding]; [QNUrlSafeBase64 decodeString:HIMAStr]是有值的 但是返回出来却是nil这是为什么呀?这是我的代码 请大神们指点下!感激不尽!!!
Heureusement, j'ai utilisé Qiniu récemment :
- (NSString *)genToken { static NSUInteger expireTime = 0; static NSString *cachedSign = nil; NSUInteger now = (NSUInteger)[NSDate date].timeIntervalSince1970; if (now > expireTime) { expireTime = now + 3600 - 60; NSDictionary *policy = @{ @"scope": _bucket, @"deadline": @(expireTime + 60), @"returnBody": @"{\"key\":$(key),\"name\":$(fname),\"size\":$(fsize),\"w\":$(imageInfo.width),\"h\":$(imageInfo.height),\"hash\":$(etag)}" }; NSString *encodedPolicy = [[NSJSONSerialization dataWithJSONObject:policy options:0 error:NULL] base64EncodedStringWithOptions:0]; encodedPolicy = [encodedPolicy stringByReplacingOccurrencesOfString:@"+" withString:@"-"]; encodedPolicy = [encodedPolicy stringByReplacingOccurrencesOfString:@"/" withString:@"_"]; const char *text = [encodedPolicy cStringUsingEncoding:NSASCIIStringEncoding]; const char *key = [_secretKey cStringUsingEncoding:NSASCIIStringEncoding]; char cHMAC[CC_SHA1_DIGEST_LENGTH]; CCHmac(kCCHmacAlgSHA1, key, strlen(key), text, strlen(text), cHMAC); NSString *sign = [[NSString alloc] initWithData:[NSData dataWithBytes:cHMAC length:sizeof(cHMAC)] encoding:NSASCIIStringEncoding]; NSString *encodedSign = sign.toBase64String; encodedSign = [encodedSign stringByReplacingOccurrencesOfString:@"+" withString:@"-"]; encodedSign = [encodedSign stringByReplacingOccurrencesOfString:@"/" withString:@"_"]; cachedSign = [NSString stringWithFormat:@"%@:%@:%@", _accessKey, encodedSign, encodedPolicy]; } return cachedSign; }
Heureusement, j'ai utilisé Qiniu récemment :