MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。好比现在的ISO校验,都是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文件是否一致的。

小编在日常使用中发现,MD5加密有多种,而第三方只会告诉你他们使用的是MD5加密并不会告诉你是那种方法。因此小编在这里提供小编在日常使用过的两种方法:

第一种:

package hehe.md5;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Str2MD5 {
public String MD5(String sourceStr) {

String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(sourceStr.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
//buf.append(String.format("%02X", b[offset]));
}
result = buf.toString();
// String a = result.toUpperCase();
// System.out.println("MD5(" + sourceStr + ",32) = " + result);
// System.out.println("MD5 32大写:"+a);
// System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));

} catch (NoSuchAlgorithmException e) {
System.out.println(e);
}
return result;
}

}

第二种:先写一个Util类

public static String toHexString(byte[] bytes) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
buffer.append(String.format("%02X", bytes[i]));
}
return buffer.toString();
}
public static void main(String[] args) throws UnsupportedEncodingException, NoSuchAlgorithmException  {
String a ="";
MessageDigest md5Tool = MessageDigest.getInstance("MD5");
byte[] md5Data = md5Tool.digest(a.toString()).getBytes("UTF-8"));
String sn = Util.toHexString(md5Data);

}

关于MD5 的大小写转换以及 32位于16位可以使用 toUpperCase()  toLowerCase()   substring(8, 24)   来进行转换,还有16位加密根据甲方的要求来截取

MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
5、强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

转载于:https://www.cnblogs.com/Mr-Tester/p/7170256.html

jmeter-Java关于MD5加密方法 以及16位32位互转相关推荐

  1. IOS端与Java端MD5加密方法

    关于NSString的MD5加密,这不难,在网上可以搜到很多算法,主要是跟后台的统一会出问题,对同一段字符串,ios和java加密后的结果可能不一样.现在贴一下ios端和后台java的代码. java ...

  2. md5 ios java代码_IOS端與Java端MD5加密方法

    關於NSString的MD5加密,這不難,在網上可以搜到很多算法,主要是跟后台的統一會出問題,對同一段字符串,ios和java加密后的結果可能不一樣,很坑爹.現在貼一下ios端和后台java的代碼. ...

  3. .NET生成常用16、32位MD5加密的两种方法

    //MD5加密函数比较复杂,在.NET中我们不需要编写底层的算法. //平台已经提供两个生成MD5加密的方法: //经过改动一点就可以生成如现在DVBBS等论坛中使用的MD5密码 //⑴:使用C:\W ...

  4. ASP.Net中MD5加密-16位32位

    public string md5(string str,int code) { if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web. ...

  5. Java实现Linux的md5加密,Linux_详细讲解:Linux系统GRUB的MD5加密方法,1、用grub-md5-crypt成生GRUB的md5密 - phpStudy...

    详细讲解:Linux系统GRUB的MD5加密方法 1.用grub-md5-crypt成生GRUB的md5密码: 通过grub-md5-crypt对GRUB的密码进行加密码运算,比如我们想设置grub的 ...

  6. Java实现MD5加密以及解密

    MD5的介绍 从本质上来说,MD5并不是一种加密算法,其全称是Message Digest Algorithm MD5(中文名:信息摘要算法第五版),为计算机安全领域广泛使用的一种散列函数,主要用于确 ...

  7. Java实现MD5加密解密类

    Java实现MD5加密以及解密类,附带测试类,具体见代码. MD5加密解密类--MyMD5Util,代码如下: [java] view plaincopy package com.zyg.securi ...

  8. Java实现MD5加密及解密的代码实例分享

    如果对安全性的需求不是太高,MD5仍是使用非常方便和普及的加密方式,比如Java中自带的MessageDigest类就提供了支持,这里就为大家带来Java实现MD5加密及解密的代码实例分享: 基础:M ...

  9. md5视频加密 java代码,Java实现MD5加密及解密的代码实例分享

    基础:MessageDigest类的使用 其实要在Java中完成MD5加密,MessageDigest类大部分都帮你实现好了,几行代码足矣: /** * 对字符串md5加密 * * @param st ...

最新文章

  1. Xonsh库——Python和Shell语法互通
  2. 漫说代理模式---给宝宝成长护航
  3. DM8168 编译filesystem步骤
  4. 太强了!一份来自清华的「数据分析」笔记!
  5. Java核心API需要掌握的程度
  6. iPhone X 弹出输入框隐藏后页面上移不回位问题的解决办法
  7. 网站的基本功能:RBAC
  8. jquery源码解析:jQuery延迟对象Deferred(工具方法)详解1
  9. java怎么设置颜色_java怎么设置颜色
  10. 尚硅谷大数据听课笔记 day2:数据类型
  11. fedora9的安装
  12. 使用promise解决回调地狱_Promise 技术调研 - 回调地狱的产生原因与解决方式
  13. python3.5 爬取bing搜索结果页面标题、链接
  14. 跑步耳机哪种好,适合运动佩戴的蓝牙耳机分享
  15. 年底不要慌,这个EXCEL模板帮你打赢Q4收官战
  16. re2c源码下载及编译
  17. SkiaSharp 之 WPF 自绘 拖曳小球(案例版)
  18. java第二个案例:运动员和教练(巩固理解抽象类和接口、继承等知识点)
  19. php纺织系统源码,XYCMS纺织企业建站系统
  20. 2008年8月23日-国家体育馆 祥云小屋 白天

热门文章

  1. java 反射创建属性_使用Java反射机制确定基本数据类型属性
  2. 高斯消元解模同余方程组
  3. mediainfo php,media.php
  4. python pow函数用法_Python代码中pow()函数具有哪些功能呢?
  5. 回溯法 —— 求解0/1背包问题(剪枝)
  6. bzoj 1113: [Poi2008]海报PLA(栈)
  7. 树的点分治(HDU 5977 2016ICPC大连 G: Garden of Eden)
  8. qscoj:喵哈哈村的烧烤店(阶梯博弈)
  9. 绘制图像直方图 matplotlib
  10. Prewitt滤波器的实现,对比Prewitt滤波器和Sobel滤波器提取图像边缘的效果