很抱歉,如果这是一个愚蠢的问题,但很难让这个工作!
我已经搜索过高和低,似乎下面的代码将生成md5哈希但我不知道如何获取我的2密码文本字段使用它生成发送到服务器。请指教我会非常感激。
麦克
#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 :(得分:3)
致电[self stringWithMD5Hash:yourTextField.text]
。您可能希望lowerCase返回函数,因为大多数服务器端语言生成带有小写字符的MD5哈希值。
答案 1 :(得分:1)
非常简单假设该方法与文本字段在同一个类中,只需执行以下操作:
NSString *md5 = [self stringWithMD5Hash:textField.text];
答案 2 :(得分: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];