Nach this site mysql verwendet:Objective C: Generieren Hash den Weg mysql Passwort() macht
SHA1(UNHEX(SHA1("this_is_a_random_string")))
Um das Passwort() Hash zu generieren.
...
ich diese Funktion kopiert haben, von einem anderen StackOverflow post:
- (NSString *)sha1:(NSString *)str {
const char *cStr = [str UTF8String];
unsigned char result[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(cStr, strlen(cStr), result);
NSString *s = [NSString stringWithFormat:
@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3], result[4],
result[5], result[6], result[7],
result[8], result[9], result[10], result[11], result[12],
result[13], result[14], result[15],
result[16], result[17], result[18], result[19]
];
return s;
}
SH1 Hashes zu generieren. Aber wie der erste Link sagt:
die zweite SHA1() wird auf die Binärdaten angewendet, die von der ersten SHA1() zurückgegeben werden und nicht zu seiner hexadezimalen Darstellung. Daher muss ich in SQL UNHEX() vor dem zweiten SHA1 anwenden.
Also muss ich etwas tun:
NSString * a = [self sha1:@"abc"];
// convert a into binary data.
NSString * b = [self:sha1:a];
Aber was auch immer ich versuche ich es nicht zur Arbeit bekommen.
Was ist der einfachste Weg, dies zu tun?
Danke!
unhex ist im Grunde hex binär. – StefanS
http://stackoverflow.com/questions/7317860/converting-hex-nsstring-to-nsdata – StefanS