java的32位MD5加密与php中的32位MD5加密结果不一样。求帮助。急急急

ak_ajin 2011-07-30 10:11:24
java: System.out.println(mad.toMd5(mad.toMd5("4451711")+"09519f").toLowerCase());
结果:0169d79a79c506c7289359b1104f69ad
php: echo md5(md5("4451711")."09519f");
结果:4c3dac55f41d67aeea814d09d5865aa9
...全文
617 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2012-10-06
  • 打赏
  • 举报
回复
这么老的帖子也翻出来了?

中文有字符集问题,不知你注意到没有
luxiong860813 2012-10-06
  • 打赏
  • 举报
回复
好像加密中文还是不一样,有没有碰到同样的问题
ak_ajin 2011-08-01
  • 打赏
  • 举报
回复
一时没注意到,唉,没发现大小写不一样
maquan 2011-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 skyaspnet 的回复:]
我这边测试的结果是一致的,JAVA的MD5需要写一个辅助方法,不像PHP中MD5加密那样方便,但是结果肯定是一致的,给出我的测试代码,你重新运行一下:
[/Quote]
你的 MD5("4451711") 输出的是全小写字母,跟 PHP 的处理结果一样;
楼主的 mad.toMd5("4451711") 输出的是全大写字母,如果转换成小写,就跟 PHP 的结果一样了。
skyaspnet 2011-07-30
  • 打赏
  • 举报
回复
两者的运行结果都为:

4c3dac55f41d67aeea814d09d5865aa9
skyaspnet 2011-07-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 ycj19881116 的回复:]
java: System.out.println(mad.toMd5(mad.toMd5("4451711")+"09519f").toLowerCase());
结果:0169d79a79c506c7289359b1104f69ad
php: echo md5(md5("4451711")."09519f");
结果:4c3dac55f41d67aeea814d09d5865aa9
[/Quote]

我这边测试的结果是一致的,JAVA的MD5需要写一个辅助方法,不像PHP中MD5加密那样方便,但是结果肯定是一致的,给出我的测试代码,你重新运行一下:

JAVA:



import java.security.MessageDigest;

public class Hello {
public final static String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
//使用MD5创建MessageDigest对象
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte b = md[i];
//System.out.println((int)b);
//将没个数(int)b进行双字节加密
str[k++] = hexDigits[b >> 4 & 0xf];
str[k++] = hexDigits[b & 0xf];
}
return new String(str);
} catch (Exception e) {return null;}
}
//测试
public static void main(String[] args) {
System.out.println(MD5(MD5("4451711")+"09519f"));
}
}




PHP:


<?php
echo md5(md5("4451711")."09519f");
?>

maquan 2011-07-30
  • 打赏
  • 举报
回复
java 的 md5 结果都是大写字母。
php 的 md5 结果都是小写字母。


————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
项目涉及技术:    1、前端:jsp、css、javascript、jQuery(js框架)、jQueryEasyUi(基于jQuery的前端框架)+BootStrap(前端框架)、dTree插件、富文本编辑器等 2、后台:SpringMvc、Spring、Hibernate(持久层框架)、JPA、MD5加密、Spring Boot、 log4J日志框架、jstl、jstl自定义分页标签等3、项目管理工具:Maven4、数据库:Mysql5、服务器:Tomcat项目开发涉及功能: 1、项目以及数据库搭建2、用户异步登录、退出以及记住用户信息3、自定义分页标签实现(24种样式随意切换)4、拦截器功能实现5、整合前端框架 EasyUi以及Bootstrap6、用户模块信息添加、修改、删除、多条件分页查询、激活、预览、用户账号异步校验、异步加载部门以及职位信息7、角色模块添加、删除、修改、分页查询、角色绑定以及解绑用户、角色绑定以及解绑操作8、Spring事务处理机制讲解9、模块管理增加、修改、删除、分页查询、整合dTree树形插件10、项目实现权限控制11、公告模块整合富文本编辑器12、密码进行MD5加密13、项目改版成Spring Boot实现14、代码机器人使用等等功能其他实战项目:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771 java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008 java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007 JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543 JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572 JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码)https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610 java项目实战之电子商城后台(java毕业设计SSM框架项目)https://edu.csdn.net/course/detail/25770 java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989 系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941 Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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