【发布时间】:2014-05-30 13:37:23
【问题描述】:
我需要转换字符串
NSString * password = @"."
在这个字符串中
PXñ¯ƒ^c?`œ·ZuÜ
通过 MD5 转换。
使用这个NSString 类别
- (NSString *)MD5
{
const char *cString = [self UTF8String];
unsigned char hashBuffer[CC_MD5_DIGEST_LENGTH];
CC_MD5(cString, (unsigned int)strlen(cString), hashBuffer);
NSMutableString *hash = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
{
[hash appendFormat:@"%02x",hashBuffer[i]];
}
NSString *string = [hash uppercaseString];
NSMutableString * newString = [[NSMutableString alloc] init]; //will contain your result-string
int i = 0;
while (i < [string length])
{
NSString * hexChar = [string substringWithRange: NSMakeRange(i, 2)];
int value = 0;
sscanf([hexChar cStringUsingEncoding:NSUTF8StringEncoding], "%x", &value);
[newString appendFormat:@"%c", (char)value];
i+=2;
}
return newString;
}
我得到这个字符串
PXñ¯c?`·ZuÜ
改为
PXñ¯ƒ^c?`œ·ZuÜ
字符串略有不同,但第一个字符串没有 ƒ^ 和 œ 字符。 想法?
【问题讨论】:
标签: ios objective-c nsstring md5