我正在构建一个 iPhone 应用程序并坚持以下几点:
unsigned char hashedChars[32];
CC_SHA256([inputString UTF8String], [inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding], hashedChars);
NSData *hashedData = [NSData dataWithBytes:hashedChars length:32];
NSLog(@"hashedData = %@", hashedData);
日志显示如下:
hashedData = <abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh>
- 注意 hashedData 是 NSData,而不是 NSString
但我需要的是将 hashedData 转换为 NSString,如下所示:
NSString *someString = @"abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh";
所以基本上结果需要像 hashedData 一样,除了我不想要尖括号和中间的空格。
最佳答案
使用 NSString initWithData:encoding: 方法。
NSString *someString = [[NSString alloc] initWithData:hashedData encoding:NSASCIIStringEncoding];
(编辑以回复您的评论:)
在这种情况下,约书亚的回答确实有帮助:
NSCharacterSet *charsToRemove = [NSCharacterSet characterSetWithCharactersInString:@"< >"];
NSString *someString = [[hashedData description] stringByTrimmingCharactersInSet:charsToRemove];
关于iphone - NSData 显示为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2653288/