MD5信息摘要算法

 
 
MD5信息摘要算法
  MD5即Message-Digest Algorithm 5(信息摘要算法5),是计算机广泛使用的散列算法之一(又译摘要算法、哈希算法)。经MD2、MD3和MD4发展而来,诞生于20世纪90年代初。用于确保信息传输完整一致。虽然已被破解,但仍然具有较好的安全性,加之可以免费使用,所以仍广泛运用于数字签名、文件完整性验证以及口令加密等领域。
  大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为司法机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的md5"数字指纹",如果任何人对文件做了任何改动,其MD5值也就是对应的"数字指纹"都会发生变化。
  具体来说文件的MD5值就像是这个文件的"数字指纹"。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的"数字指纹"就会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。
  利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

MD5字符串加密Java算法如下

public class MD5Tool { public final static String MD5(String str) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', }; byte[] btInput = str.getBytes(); try { // 获得MD5摘要算法的MessageDigest对象 MessageDigest mdInst = MessageDigest.getInstance("MD5"); // 使用输入的字节更新摘要 mdInst.update(btInput); // 获得密文 byte[] code = mdInst.digest(); // 把密文转换成十六进制的字符串形式 char strChar[] = new char[code.length * 2]; int k = 0; for (int i = 0; i < code.length; i++) { byte byte1 = code[i]; strChar[k++] = hexDigits[byte1 >>> 4 & 0xf]; strChar[k++] = hexDigits[byte1 & 0xf]; } return new String(strChar); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; } public static void main(String[] args) { System.out.println(MD5Tool.MD5("加密")); System.out.println(MD5Tool.MD5("加密")); System.out.println(MD5Tool.MD5("我要加密")); System.out.println("---------------"); System.out.println(MD5Tool.MD5("abcdefg")); System.out.println(MD5Tool.MD5("abcdefg")); System.out.println(MD5Tool.MD5("abcdefh")); } } 运行结果

2C8DA3BF709F09E73EC143BA0F9AFC82
2C8DA3BF709F09E73EC143BA0F9AFC82
7093B6CF723B1AF87CBEE7CDD9EFB530
---------------
7AC66C0F148DE9519B8BD264312C4D64
7AC66C0F148DE9519B8BD264312C4D64
432AECAD47AB93EEB7784678D56A2C8A

相同的字符串MD5加密后结果是一样的,即使改变一个字符,结果也不相同。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值