Possible Duplicate:
Sha256 in Objective-C for iPhone
Greetings,
I'm having terrible trouble generating a SHA256 string in Objective C (probably because I'm so new to the language).
In jQuery, all I have to do is this:
var sha256String=$.sha256("Hello");
which produces the hash as expected.
But in Objective-C, I've tried the following to no avail:
NSString *pword=[[NSString alloc]
initWithString:login_pword.text];
unsigned char result[64];
CC_SHA256([pword UTF8String], [pword lengthOfBytesUsingEncoding:NSASCIIStringEncoding],result);
UIAlertView *msg=[[UIAlertView alloc] initWithTitle:@"Hi" message:result delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[msg show];
[msg release];
Is there some function that I can call such as:
NSString *sha256String=[self getSHA256:pword];
This is what I'm trying to create and I'm finding it very difficult!
I hope someone can help.
Many thanks in advance,
After much playing around today, I finally came up with a function to get the SHA256:
-(NSString*) sha256:(NSString *)clear{
const char *s=[clear cStringUsingEncoding:NSASCIIStringEncoding];
NSData *keyData=[NSData dataWithBytes:s length:strlen(s)];
uint8_t digest[CC_SHA256_DIGEST_LENGTH]={0};
CC_SHA256(keyData.bytes, keyData.length, digest);
NSData *out=[NSData dataWithBytes:digest length:CC_SHA256_DIGEST_LENGTH];
NSString *hash=[out description];
hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];
return hash;
}
This gives the same output as PHP. It can easily be converted to SHA1 - just change 'SHA256' to 'SHA1'.
Hope it helps someone.