Es wird versucht, die NSString-Funktion sha1 zu schreiben, aber es wird null zurückgegeben
Ich habe folgende Objective-C-Funktion:
+(NSString *)stringToSha1:(NSString *)str{
NSMutableData *dataToHash = [[NSMutableData alloc] init];
[dataToHash appendData:[str dataUsingEncoding:NSUTF8StringEncoding]];
unsigned char hashBytes[CC_SHA1_DIGEST_LENGTH];
CC_SHA1([dataToHash bytes], [dataToHash length], hashBytes);
NSData *encodedData = [NSData dataWithBytes:hashBytes length:CC_SHA1_DIGEST_LENGTH];
[dataToHash release];
NSString *encodedStr = [NSString stringWithUTF8String:[encodedData bytes]];
//NSString *encodedStr = [[NSString alloc] initWithBytes:[encodedData bytes]
// length:[encodedData length] encoding: NSUTF8StringEncoding];
NSLog(@"String is %@", encodedStr);
return encodedStr;
}
Ich versuche, einen NSString zu nehmen und ihn mit SHA1 zu codieren. Dieser Teil scheint zu funktionieren. Ich denke, ich stolpere darüber, wie man das NSData-Objekt zurück in eine lesbare Zeichenfolge konvertiert. Wenn ich UTF8-Codierung verwende, werde ich leer, wenn ich ASCII sage, bekomme ich seltsame Zeichen. Was ich wirklich will, ist die Hex-Zeichenfolge, aber ich habe keine Ahnung, wie ich sie bekommen soll. Dies verwendet das iPhone 3.0 SDK.
Im Moment wird jeder String, den ich eingebe, NULL zurückgegeben.