So I need to generate a Sha256 password in Objective-C, and can't figure out for the life of me how to do it! Is there something easy I'm just missing?
I've tried implementing the following method (which was written for iPhone, but I figured maybe it'd work cross-platform, as some Objective-C code does)
-(NSString*)sha256HashFor:(NSString*)input
{
const char* str = [input UTF8String];
unsigned char result[CC_SHA256_DIGEST_LENGTH];
CC_SHA256(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH*2];
for(int i = 0; i<CC_SHA256_DIGEST_LENGTH; i++)
{
[ret appendFormat:@"%02x",result[i]];
}
return ret;
}
But that just spat out errors about CC_SHA256_DIGEST_LENGTH being an undeclared identifier.
a modified version of @zaph answer in Objective-C with NSString as input and output:
Objective-C method whose output matches output from random site online
Taken from this Gist.
// Test
You need to include the appropriate header file:
According to the Cryptographic Services documentation this should be available on both iOS and OS X.
Check out the NSHash cocoa pod. It has a bunch of different hashing methods including SHA256.
https://github.com/jerolimov/NSHash