基于此问题,我写了一个类NSString来hash NSString使用SHA1实例.但是,我的实施有问题.有趣的是,记录NSData实例确实给出了预期的哈希,但是当我想从该NSData实例创建一个NSString时,我只是得到了null.
- (NSString *)sha1 {
NSData *dataFromString = [self dataUsingEncoding:NSUTF8StringEncoding];
unsigned char hashed[CC_SHA1_DIGEST_LENGTH];
if ( CC_SHA1([dataFromString bytes], [dataFromString length], hashed) ) {
NSData *dataFromDigest = [NSData dataWithBytes:hashed length:CC_SHA1_DIGEST_LENGTH];
NSString *result = [[NSString alloc] initWithBytes:[dataFromDigest bytes] length:[dataFromDigest length] encoding:NSUTF8StringEncoding];
return result;
} else {
return nil;
}
}Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!