我需要与用作登录名的 Web 服务集成。哈希需要在客户端生成。我能够生成正确的哈希作为 NSMutableData,但是我需要将其转换为字符串,而不是在 NSMutableData 对象在输出控制台中呈现为字符串时产生的空格或括号。我已经阅读了几篇文章,似乎都在说同样的话:
NSString *newstring = [[NSString alloc] initWithDSata:dataToConvert encoding:NSUTF8StringEncoding];
不幸的是,这对我不起作用。使用 NSUTF8StringEncoding 返回 null。NSASCIIStringEncoding 更糟糕。
这是我的代码:
NSString *password = [NSString stringWithFormat:@"%@%@", kPrefix, [self.txtPassword text]];
NSLog(@"PLAIN: %@", password);
NSData *data = [password dataUsingEncoding:NSASCIIStringEncoding];
NSMutableData *sha256Out = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];
CC_SHA256(data.bytes, data.length, sha256Out.mutableBytes);
NSString *preppedPassword = [[NSString alloc] initWithData:sha256Out encoding:NSASCIIStringEncoding];
NSLog(@"HASH: %@\n", preppedPassword);
如何将 NSMutableData 转换为字符串?
我的问题是我需要从这个
<7e8df5b3 17c99263 e4fe6220 bb75b798 4a41de45 44464ba8 06266397 f165742e>
对此
7e8df5b317c99263e4fe6220bb75b7984a41de4544464ba806266397f165742e