Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to SHA hash in cocoa/iOS

Given the message and the salt how can I encode it returning the hashed string?

I need reproduce the php function:

hash_hmac('sha256','message','salt');

Thanks

like image 586
Addev Avatar asked Feb 26 '12 16:02

Addev


1 Answers

Found the answer:

#import <CommonCrypto/CommonHMAC.h>

-(NSString *) hashString :(NSString *) data withSalt: (NSString *) salt {


   const char *cKey  = [salt cStringUsingEncoding:NSUTF8StringEncoding];
   const char *cData = [data cStringUsingEncoding:NSUTF8StringEncoding];
   unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
   CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);

   NSString *hash;

   NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2];

   for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++)
       [output appendFormat:@"%02x", cHMAC[i]];
   hash = output;
   return hash;

}
like image 176
Addev Avatar answered Nov 19 '22 22:11

Addev