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.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage