C#和Objective-C MD5加密的问题
upmxf 2010-06-07 04:33:29 我用C#写了个求MD5的方法:
public static string encryptPasswordWithMd5(string password)
{
MD5 md5Hasher = MD5.Create();
byte[] data = md5Hasher.ComputeHash(Encoding.Unicode.GetBytes(password));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
sb.Append(data[i].ToString("x2"));
return sb.ToString();
}
现在又要用Objective-C实现同样的功能, 我写了方法 :
- (NSString *) encryptPasswordWithMd5: (NSString *) _password
{
const char * cStr = [_password cStringUsingEncoding: NSUTF16LittleEndianStringEncoding];
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]
];
}
两个方法加密的结果不一样,C#代码加密"admin"的结果是"19a2854144b63a8f7617a6f225019b12",而objc加密的结果是"0CC175B9C0F1B6A831C399E269772661",请各位高手们指教哪里有问题。。