Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

import java.security.MessageDigest;/*** MD5技术加密解密*/
public class MD5Tools {/**** MD5加码 生成32位md5码*/public static String string2MD5(String inStr){MessageDigest md5 = null;try{md5 = MessageDigest.getInstance("MD5");}catch (Exception e){System.out.println(e.toString());e.printStackTrace();return "";}char[] charArray = inStr.toCharArray();byte[] byteArray = new byte[charArray.length];for (int i = 0; i < charArray.length; i++)byteArray[i] = (byte) charArray[i];byte[] md5Bytes = md5.digest(byteArray);StringBuffer hexValue = new StringBuffer();for (int i = 0; i < md5Bytes.length; i++){int val = ((int) md5Bytes[i]) & 0xff;if (val < 16)hexValue.append("0");hexValue.append(Integer.toHexString(val));}return hexValue.toString();}/*** 加密解密算法 执行一次加密,两次解密*/public static String convertMD5(String inStr){char[] a = inStr.toCharArray();for (int i = 0; i < a.length; i++){a[i] = (char) (a[i] ^ 't');}String s = new String(a);return s;}// 测试主函数public static void main(String args[]) {String s = new String("1233");System.out.println("原始:" + s);System.out.println("MD5后:" + string2MD5(s));System.out.println("加密的:" + convertMD5(s));System.out.println("解密的:" + convertMD5(convertMD5(s)));}
}

Java MD5加密解密相关推荐

  1. Java MD5 加密 解密 工具类

    package com.accountmanagement.techzero.util;public class MD5Helper {// 标准的构造函数,调用md5Init函数进行初始化工作pub ...

  2. java md5加密解密_技术09期:数据安全之加密与实现

    前言:大数据时代,每个人的生活中都不存在所谓的绝对"秘密",通过网络上的数据信息可以分析出一个人生活的各种痕迹.因此,保障大数据信息安全至关重要. 本文主要介绍了散列算法.对称加密 ...

  3. java md5加密解密_java MD5加密解密 | 学步园

    package com.md5; /** * @author 作者 E-mail: chenshaohua2012@126.com * @version 创建时间:2012-11-6 下午3:29:4 ...

  4. java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法

    java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...

  5. Java实现MD5加密解密类

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

  6. java 采用MD5加密解密代码示例(不玩套路, 非标题党, 附带解密代码)

    package cn.demo; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; im ...

  7. 手机号 MD5加密解密工具类

    package com.yestar.common.utils;import java.io.UnsupportedEncodingException; import java.security.Me ...

  8. RSA、MD5加密解密算法全套解析安装教程

    第一部分介绍加密解密算法, 第二部分介绍我小组成功应用的RSA.MD5两种加密解密算法,以及心得体会. 1.加密解密算法介绍 应用的开发中安全很重要,所以信息加密技术显得尤为重要.我们需要对应用中的多 ...

  9. C# MD5加密解密帮助类

    /// <summary>     /// MD5加密解密帮助类     /// </summary>     public static class DESHelper    ...

最新文章

  1. python判断灰度图
  2. php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
  3. 一个视觉交互设计失败的案例
  4. 实践证明m1上面的windows可以说一无是处
  5. golang 接口类型 interface 简介使用
  6. 微服务架构的核心要点和实现原理解析
  7. 第十七周项目2-引用作形参
  8. Griddle, griddle-react 一个REACT 表格组件
  9. 银河麒麟系统怎么安装微软雅黑字体
  10. BDA,CDA,CPDA哪个证相对可靠?哪个含金量高?具体考试内容?
  11. 关于马尔科夫链的期望收益在matlab中的实现
  12. 【C#实现猜数字游戏】
  13. Rokid webhook 五步应用指南 手把手教你做个懒人
  14. vue init webpack缺少标识符_Vue脚手架热更新技术探秘
  15. 群响黄宝书:淘宝客历史沿革和新崛起的淘宝高手分享
  16. Chromedriver Mirror
  17. INFOR WMS仓储管理系统里常用表说明
  18. k8s 实战 - kubectl logs - 外传
  19. 微信的WXML和HTML WXSS和CSS的区别详解
  20. 瞧,工程师绘图最佳实践!

热门文章

  1. Typora插入图片的合理保存【windows平台】
  2. Redis教程之基础-五种数据基本操作
  3. 人事管理系统(Mysql+Java)
  4. 解决禅道升级报错:Column not found: 1054 Unknown column 'readme' in 'zt_im_client'
  5. r5 5600u和r5 4600u参数对比哪个好?
  6. Firefox配置阿里云DNS
  7. dlink网络打印服务器如何修改ip地址,DLINK路由器如何更改登陆IP地址
  8. 【毕业设计】深度学习实现行人重识别 - python opencv yolo Reid
  9. 文科背景去德国学计算机,文科生留学德国的现状是怎样的
  10. zigbee中的CSMA-CA载波检测多路访问-碰撞避免和信标(Beacon)VS非信标(Nonbeacon)网络