将MD5添加到UITextField

时间:2011-08-31 22:01:40

标签: iphone ios sdk md5

很抱歉,如果这是一个愚蠢的问题,但很难让这个工作!

我已经搜索过高和低,似乎下面的代码将生成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] ];

}

3 个答案:

答案 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];