I am building an iPhone app and stuck with the following:
unsigned char hashedChars[32]; CC_SHA256([inputString UTF8String], [inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding], hashedChars); NSData *hashedData = [NSData dataWithBytes:hashedChars length:32]; NSLog(@"hashedData = %@", hashedData);
The log is showing like:
hashedData = <abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh>
But what I need is to convert hashedData into NSString that looks like:
NSString *someString = @"abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh";
So basically the result needs to be like hashedData except I don't want the angle brackets and spaces in between.
Use the NSString initWithData:encoding: method.
NSString *someString = [[NSString alloc] initWithData:hashedData encoding:NSASCIIStringEncoding];
(edit to respond to your comment:)
In that case, Joshua's answer does help:
NSCharacterSet *charsToRemove = [NSCharacterSet characterSetWithCharactersInString:@"< >"]; NSString *someString = [[hashedData description] stringByTrimmingCharactersInSet:charsToRemove];
I have found the solution and I think I was being stupid.
Basically all I had to do is:
NSString *someString = [NSString stringWithFormat:@"%@", hashedData];
//forcing the NSData
to become NSString
Once again thank you to all who tried to help, Much appreciated.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With