2011-08-31 67 views
-1

對不起,如果這是一個愚蠢的問題,但難以得到這個工作!將MD5添加到UITextField

我已經搜索嗨和低,似乎下面的代碼將生成一個MD5哈希,但我不知道如何讓我的2密碼textfields使用它來生成發送到服務器。請告知我會非常感激。

邁克

#import <CommonCrypto/CommonDigest.h> 

- (NSString *)stringWithMD5Hash:(NSString *)inStr { 
const char *cStr = [inStr UTF8String]; 
unsigned char result[CC_MD5_DIGEST_LENGTH]; 
CC_MD5(cStr, strlen(cStr), result); 
return [NSString stringWithFormat:@"%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] ]; 

}

+0

嗨,大家好,我差不多有這個了,現在它正在打印出來一個NSLOG從輸入到密碼字段1,但不會將它發送到服務器是這是一個代碼問題或服務器? NSString * str = self.newPassword1.text; NSString * md5 = [str md5]; (@「%@ - >%@」,str,md5); – SirL0fty

回答

0

你應該把這個代碼放到一個Category(見Apple documentation),它增加了NSString類。您可以將其添加爲一類

+ (NSString *)stringWithMD5Hash:(NSString *)inStr { 
    const char *cStr = [inStr UTF8String]; 
    unsigned char result[CC_MD5_DIGEST_LENGTH]; 
    CC_MD5(cStr, strlen(cStr), result); 
    return [NSString stringWithFormat:@"%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] ]; 
} 

或實例方法

- (NSString *)MD5Hash { 
    const char *cStr = [self UTF8String]; 
    unsigned char result[CC_MD5_DIGEST_LENGTH]; 
    CC_MD5(cStr, strlen(cStr), result); 
    return [NSString stringWithFormat:@"%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] ]; 
} 

然後,你可以把它作爲sudo rm -rf說:

NSString *md5 = [NSString stringWithMD5Hash:textField.text]; 

NSString *md5 = [textField.text MD5Hash]; 
+0

其實,如果你添加它作爲一個類別不會是:'NSString * md5 = [NSString stringWithMD5Hash:textField.text];' –

+0

當然... doh ...複製和粘貼:) – tcurdt

3

呼叫[self stringWithMD5Hash:yourTextField.text]。您可能想要降低該函數的返回值,因爲大多數服務器端語言都會生成帶有小寫字符的MD5哈希值。

1

很容易假設方法是在同一類的文本框,只是這樣做:

NSString *md5 = [self stringWithMD5Hash:textField.text]; 
相關問題