在iphone/Objective C中生成SHA256 ......?

Kul*_*ngh 11 iphone sha256

如何在iphone/objective c中创建一个字符串的SHA256 ...

适用于iPhone的Objective-C中的Sha256

我读过这个..但我无法理解这一点..

我想创建类似于php函数的输出,如下所示: -

$hash = hash_hmac("sha256", implode(';', $hash_parameters), $api_key);
Run Code Online (Sandbox Code Playgroud)

其中哈希参数是参数数组...

你能把它写成一个取输入字符串的方法......?

什么是NSData或NSString方法的输出.. ??

我必须用这个创建一个请求.. ??

所以在请求对象中..

[theRequest setHTTPBody:requestBody];
Run Code Online (Sandbox Code Playgroud)

什么应该是requestBody的类型?

TAL*_*BOY 17

我不确定我是否完全理解你的问题,但是如果你想创建一个哈希字符串,你可以将参数作为参数传递给哈希函数.

-(void)generateHashedString {

    NSString *key = @"Some random string";
    //enter your objects you want to encode in the data object
    NSString *data = [NSString stringWithFormat:@"%@%@%@", @"sha256", hash_parameters, api_key];

    const char *cKey  = [key cStringUsingEncoding:NSASCIIStringEncoding];
    const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding];

    unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];

    CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);

    NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC
                                          length:sizeof(cHMAC)];

    NSString *hash = [HMAC base64Encoding];

}
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个可用于发出请求的哈希值的NSString. NSLog(@"%@",hash);看看你生成了什么!

确保你#import <CommonCrypto/CommonHMAC.h>