For a new project I need to hash a NSString with SHA256. I have used the following code:
unsigned char hashedChars[32];
NSString *inputString;
inputString = [NSString stringWithFormat:@"hello"];
NSData * inputData = [inputString dataUsingEncoding:NSUTF8StringEncoding];
CC_SHA256(inputData.bytes, inputData.length, hashedChars);
I found this piece of code on stackoverflow. I do not really get all the things this code do here are some questions about the code:
1.The CC_SHA256 makes a hash but this hash will be stored in inputData again? What I mean can I do something like this:
NSString *string=CC_SHA256(..) //of course you can't put it directly in a NSString, but you get the point
2.In the end the hash has to be a hexadecimal string, but what is the type that CC_SHA256 outputs (UTF-8??)?
3.The first parameter of CC_SHA256 why do I have to put bytes at the end and is "inputData" enough?
4.What is the need of the length of the string (second parameter)?
5.And the last parameter does not make any sense to me, can somebody please explain and why the hashedChars has to be 32?