Ios Android MD5加密结果不一致

在枫中_ 2014-07-29 09:59:59
public static String toMD5(String str) {
byte[] source = str.getBytes("ascii");
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(source);
StringBuffer buf = new StringBuffer();
for (byte b : md.digest())
buf.append(String.format("%x", b & 0xff));//%02x
return buf.toString().toUpperCase(Locale.getDefault());
}


+ (NSString *)md5:(NSString *)str {
const char *cStr = [str UTF8String];
unsigned char result[16];
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]];
}

Android的结果:FFC6F526578D32DB4FE47970FBFEF8
ios的结果 FFC6F5265708D32DB40FE47970FBFEF8
多了两个0
求帮助
...全文
393 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuchxu521 2014-07-30
  • 打赏
  • 举报
回复
引用 3 楼 wuchxu521 的回复:
二楼说的对
看错了 是一楼
wuchxu521 2014-07-30
  • 打赏
  • 举报
回复
二楼说的对
在枫中_ 2014-07-29
  • 打赏
  • 举报
回复
把ios的 %02X 改成 %x 就可以了
尹现伟 2014-07-29
  • 打赏
  • 举报
回复
安卓是30位,你的是32位,安卓少两个零,他错了。还有MD5不算是加密

29,028

社区成员

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

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