Skip to content

Instantly share code, notes, and snippets.

@GintokiS
Created August 31, 2018 06:03
Show Gist options
  • Save GintokiS/f48621706bde8c80e804e391e5eb7de7 to your computer and use it in GitHub Desktop.
Save GintokiS/f48621706bde8c80e804e391e5eb7de7 to your computer and use it in GitHub Desktop.
HMAC-SHA1
//
// main.m
// sucksha1
//
// Created by Dagu on 2018/8/20.
// Copyright © 2018年 ORANCORP. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonCrypto.h>
@interface Suck : NSObject
- (void)suck;
@end
@implementation Suck
- (void)suck {
// NSString *text = @"a=1252821871&k=AKIDgaoOYh2kOmJfWVdH4lpfxScG2zPLPGoK&t=1436077115&r=11162";
// NSString *fuck = @"a=1252821871&k=AKIDgaoOYh2kOmJfWVdH4lpfxScG2zPLPGoK&t=1528775129&r=1066735099";
NSString *text = @"a=102&k=HYLrmGvcedOoDhICM3uQtgmccInGWxwIui6T&t=1534736308&r=1496929847";
NSString *ssss = @"a=102&k=HYLrmGvcedOoDhICM3uQtgmccInGWxwIui6T&t=1534736308&r=1496929847";
NSLog(@"text.length = %ld", text.length);
const char *cKey = [@"o6QkjSswrVRzRgxArOaHmNqVHezeEcEo" cStringUsingEncoding:NSUTF8StringEncoding];
const char *cData = [text cStringUsingEncoding:NSUTF8StringEncoding];
uint8_t cHMAC[CC_SHA1_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:CC_SHA1_DIGEST_LENGTH];
NSLog(@"HMAC = %@", HMAC);
NSData *textData = [text dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *suckData = HMAC.mutableCopy;
[suckData appendData:textData];
NSString *b64 = [suckData base64EncodedStringWithOptions:0];
NSLog(@"%@", b64);
//
//
// NSMutableString * output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
//
// for (int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
// [output appendFormat:@"%02x", cHMAC[i]];
// }
//
// NSLog(@"output: %@", output);
//
// [output appendString:text];
//
// NSData *asdasda = [output dataUsingEncoding:NSUTF8StringEncoding];
//
// NSLog(@"asd = %@", [asdasda base64EncodedStringWithOptions:0]);
//
//
// NSString *B64 = @"7YrH7PAlkT7ed4YLAwIKCTmdRw5hPTEwMiZrPUhZTHJtR3ZjZWRPb0RoSUNNM3VRdGdtY2NJbkdXeHdJdWk2VCZ0PTE1MzQ3MzYzMDgmcj0xNDk2OTI5ODQ3";
//
// NSData *d1 = [[NSData alloc] initWithBase64EncodedString:B64 options:NSDataBase64DecodingIgnoreUnknownCharacters];
//
// NSLog(@"d1.length = %ld, %@", d1.length , d1);
//
// NSData *tempData = [d1 subdataWithRange:NSMakeRange(20, 70)];
//
// NSString *test = [[NSString alloc] initWithData:tempData encoding:NSUTF8StringEncoding];
// NSLog(@"test = %@", test);
//
// NSData *tempdata2 = [d1 subdataWithRange:NSMakeRange(0, 20)];
//
// NSLog(@"temp data2 = %@", tempdata2);
//
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
Suck *s = [[Suck alloc] init];
[s suck];
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment