Auf dem iPhone wird die Sandbox niemanden mehr auf Ihre Passwörter zugreifen. auf dem Desktop ist es nicht so einfach.
Sie sollten die Passwörter als Hashes und nicht als Klartext speichern. Ich glaube, das wird Ihnen die gewünschten Ergebnisse bringen, ohne die Funktionalität zu beeinträchtigen. Der einzige Gedanke, den Sie niemals machen können, ist, erneut auf das Klartext-Passwort zuzugreifen - wenn Sie es auf Stärke analysieren oder es an einen anderen Dienst weitergeben möchten. Im Allgemeinen werden Hashes jedoch keine Funktionalität opfern.
Der folgende Code nimmt ein Passwort in rawPassword und speichert seinen SHA-1-Hash in passwordHash.
#import <CommonCrypto/CommonDigest.h>
const char* utf8PasswordRepresentation = [rawPassword UTF8String];
unsigned char * rawHash = malloc(CC_SHA1_DIGEST_LENGTH);
CC_SHA1(utf8PasswordRepresentation, strlen(utf8PasswordRepresentation), rawHash);
NSMutableString* passwordHash = [NSMutableString CC_SHA1_DIGEST_LENGTH*2];
for (int i = 0 ; i< CC_SHA1_DIGEST_LENGTH; i++)
[passwordHash appendFormat:@"%02x" , rawHash[i]];
Beachten Sie, dass hier keine Speicherverwaltung vorhanden ist.
Überprüfen Sie den Wikipedia-Eintrag für eine explanation of password hashing.
Es gibt viele Versionen des gleichen Codes um die Intertubes.
Warum müssen Sie sie speziell in einer Zeichenfolge speichern und warum versuchen die Leute, an diese Erinnerung zu kommen? –