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",请各位高手们指教哪里有问题。。
...全文
171 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
one2zero 2010-12-02
  • 打赏
  • 举报
回复
byte[] data = md5Hasher.ComputeHash(Encoding.Unicode.GetBytes(password));

const char * cStr = [_password cStringUsingEncoding: NSUTF16LittleEndianStringEncoding];

Unicode
UTF16
pcjbird 2010-06-09
  • 打赏
  • 举报
回复
(⊙o⊙)可能是编码不统一的问题吧~~~

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧