一、遇到问题

java md5的输出结果和php md5的输出结果不一致。

二、解决代码

java

import java.security.MessageDigest;public class md5Test {/*** @param input 输入* @return 返回16个字节* @throws Exception*/public static byte[] originMD5(byte[] input) throws Exception {MessageDigest md5 = MessageDigest.getInstance("MD5");byte[] out = md5.digest(input);return out;}/*** @param input 输入* @return 返回16个字节* @throws Exception*/public static byte[] MD5(byte[] input) throws Exception {String str = new String(input, 0, input.length);//创建MD5加密对象MessageDigest md5 = MessageDigest.getInstance("MD5");// 进行加密md5.update(str.getBytes());//获取加密后的字节数组byte[] md5Bytes = md5.digest();String res = "";for (int i = 0; i < md5Bytes.length; i++) {int temp = md5Bytes[i] & 0xFF;// 转化成十六进制不够两位,前面加零if (temp <= 0XF) {res += "0";}res += Integer.toHexString(temp);}return res.getBytes();}public static void main(String[] args) throws Exception {byte[] data = {0x4C, 0x2B, 0x3E, 0x5A, 0x26, 0x3A, 0x3C, 0x18};byte[] md5Data = MD5(data);String strMd5Key = new String(md5Data, 0, md5Data.length);System.out.println(strMd5Key);}
}

php

<?php
/*** Created by PhpStorm.* User: xianbin* Date: 2018/11/20* Time: 18:52*/
class testhexstring
{public function arr2Form($arr){$tempStr = "";foreach ($arr as $key=>$value){$tempStr .=$key."=".$value."&";}return substr($tempStr, 0, strlen($tempStr) -1);}public function form2Arr($str){$arr = array();$array=explode('&', $str);foreach ($array as $key){$tempInfo=explode('=', $key);$arr[$tempInfo[0]] = $tempInfo[1];}return $arr;}/*** 将字节数组转化为String类型的数据* @param $bytes 字节数组* @param $str 目标字符串* @return 一个String类型的数据*/public function toStr($bytes) {$str = '';foreach($bytes as $ch) {$str .= chr($ch);}return $str;}/*** 转换一个string字符串为byte数组* @param $str 需要转换的字符串* @param $bytes 目标byte数组*/public function getbytes($str) {$len = strlen($str);$bytes = array();for($i=0;$i<$len;$i++) {if(ord($str[$i]) >= 128){$byte = ord($str[$i]) - 256;}else{$byte = ord($str[$i]);}$bytes[] =  $byte ;}return $bytes;}
}$test = new testhexstring();$data = array(0x4C, 0x2B, 0x3E, 0x5A, 0x26, 0x3A, 0x3C, 0x18);$strData = $test->toStr($data);$md5Data = md5($strData);echo 'md5 origin is:  ',$md5Data,PHP_EOL;
?>

结果:

解决java md5和php md5 结果不一致问题相关推荐

  1. php和java md5 不同,JAVA 和 PHP md5 加密后的值不一致

    想要将一段 JAVA 实现的一致性哈希用 PHP 代码实现出来,但是不太懂 JAVA, 搜索了下资料大概知道是因为 JAVA 和 PHP md5 加密后的值对不上,所以问题变成了如何用 PHP 代码实 ...

  2. java security / SSL / TLS / md5 / sha / base64 / rsa / des / aes / 3des

    java jdk keytool C:\Program Files\Java\jdk1.7.0_11\bin\keytool.exe [lindows@Loadrunner19 ~]$ ll /opt ...

  3. 用Java获取文件的MD5校验和

    我正在寻找使用Java获取文件的MD5校验和. 我真的很惊讶,但是我找不到任何能显示如何获取文件的MD5校验和的东西. 怎么做? #1楼 Guava现在提供了一个新的,一致的哈希API,它比JDK中提 ...

  4. 利用Java自带的MD5加密java.security.MessageDigest;

    MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...

  5. Java字符串、文件MD5工具类

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/120874209 本文出自[赵彦军的博客] 文章目录 Hex MD5Util 其他实 ...

  6. java和mysql中md5+base64的执行结果

    目录 前言 java md5+base64 java md5+base64:commons-codec java md5+base64:shiro-core java covertToString(m ...

  7. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  8. Java常用消息摘要算法-MD5

    本工具类可实现对字符串或者文件提取MD5值(MD5加密) import java.io.File; import java.io.FileInputStream; import java.io.Inp ...

  9. java常用加密算法及MD5的使用

    前言:工作中经常遇到将数据进行各种方式的加密,然后封装到一个自定义的实体类中作为参数进行传输数据.当然这是为了数据在传输过程中的安全保证,不被其他人轻易的就获取到原数据: 首先,加密解密的概念很简单明 ...

最新文章

  1. ServiceHot告诉你美国的程序员们各编程语言薪资情况
  2. 批量ping 查看主机能否ping通,能否ssh上.md,
  3. Django入门项目实践(中)
  4. Request_获取请求头数据
  5. SAP WebIDE里的JavaScript代码检查code check
  6. HALCON示例程序inspect_bga.hdev测量bga焊点缺陷
  7. Spring集成JDBC组件开发
  8. web前端是不是没有前景了?
  9. 【codeforces】【比赛题解】#950 CF Round #469 (Div. 2)
  10. vim编辑器的基本使用
  11. 咸鱼笔记:《实用软件工程》第一、二章课后简答题及参考答案
  12. 如何政治正确地黑中国玄幻小说?!
  13. 大麦携演协发布演出市场报告:95后成消费新贵 城市下沉提速
  14. ENVI基本操作之彩色合成
  15. QT实现Qt3D材质系统加载PBR材料
  16. golang语言chromedp包介绍以及如何弹出浏览器进行调试
  17. 初识华为设备和基本命令
  18. cmake:基于MDK(Keil)的Nationstech.N32G45x平台交叉编译工具链定义
  19. 计算机磁盘图标变成软件的了,电脑的本地磁盘图标变成一个U盘形状图标了怎么回事?如何解决?...
  20. React 中闭包陷阱问题分析

热门文章

  1. Unity3d游戏制作 UV贴图
  2. Fomo3D教程:如何参与Fomo3D和赚钱
  3. Android客制化------恢复出厂设置但保留文件
  4. (转)使用Apollo应用开发(9)
  5. 商务部首次明确支持无人商店;重庆邮电大学大数据智能研究院今揭牌成立
  6. 谈谈盲盒小程序开发的核心功能,以及盲盒小程序未来的市场
  7. 基于Basic RF的智能家居控制系统---智能照明功能(照明端)
  8. 第八届山东省大学生网络安全技能大赛部分Writeup
  9. Matlab中对字符串的处理(转 备查)
  10. 享受奇妙的景点莫斯科