java版md5加密
来源:互联网 发布:网络运维与管理 编辑:程序博客网 时间:2024/05/22 14:19
简介
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
MD5加密的特点是不可逆的,也就是说只能加密不能解密,比如说我们对用户注册的密码进行了md5加密,如果用户以后忘记了密码,那系统只能让用户废弃以前的旧密码,重置成新密码。也就是说旧密码是不能通过解密操作找回的。
废话不多说,我们来看代码:
package com.wx.utils;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/** * MD5加密工具类 * @author wx * 2015-09-22 */public class MD5Utils { /** * 进行MD5加密 * @param pwd 需要加密的字符串 * @return String 加密后的字符串 */ public static String getPwd(String pwd) { String hexString = "";//存放加密后的结果 try { // 创建加密对象 MessageDigest digest = MessageDigest.getInstance("md5"); // 调用加密对象的方法,加密的动作已经完成 byte[] bs = digest.digest(pwd.getBytes()); for (byte b : bs) { // 第一步,将数据全部转换成正数: // 解释:为什么采用b&255 /* * b:它本来是一个byte类型的数据(1个字节) 255:是一个int类型的数据(4个字节) * byte类型的数据与int类型的数据进行运算,会自动类型提升为int类型 eg: b: 1001 1100(原始数据) * 运算时: b: 0000 0000 0000 0000 0000 0000 1001 1100 255: 0000 * 0000 0000 0000 0000 0000 1111 1111 结果:0000 0000 0000 0000 * 0000 0000 1001 1100 此时的temp是一个int类型的整数 */ int temp = b & 255; // 第二步,将所有的数据转换成16进制的形式 // 注意:转换的时候注意if正数>=0&&<16,那么如果使用Integer.toHexString(),可能会造成缺少位数 // 因此,需要对temp进行判断 if (temp < 16 && temp >= 0) { // 手动补上一个"0" hexString = hexString + "0" + Integer.toHexString(temp); } else { hexString = hexString + Integer.toHexString(temp); } } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return hexString; } public static void main(String[] args) { String pwd = MD5Utils.getPwd("test123"); System.out.println(pwd); }}=============================
反复运行的结果如下,每次加密的结果都是一样的
阅读全文
0 0
- MD5加密JAVA版
- java版md5加密
- Java-Base64加密&&MD5加密
- 16位MD5加密JAVA版
- JAVA:MD5加密器
- java:MD5加密字符串
- Java MD5加密
- Java MD5加密
- MD5 JAVA 加密 实现
- MD5加密代码(java)
- Java的MD5加密
- MD5加密java类
- java md5 加密
- MD5 java 加密类
- Java MD5加密代码
- java MD5加密
- Java的MD5加密
- java-md5加密
- HDU 1288 Hat's Tea (贪心)
- json数据解析
- RAFT(1)
- requests https访问错误SSLError: certificate verify failed 及InsecureRequestWarning处理办法
- 解决:eclipse中直接输入http://localhost:8080报404错误但是直接输入http://localhost:8080/项目名称可以进去
- java版md5加密
- 习题5的第3小题
- 设计算法把一个十进制的整数转换成二至九进制之间的任意进制输出
- Fragment嵌套问题Fragment一个ViewPager展示子Fragment
- zzuli acm1056由月利息求本息的误区
- Android开发--卡片式布局CardView/AppBarLayout
- 云计算的概念
- Activity, Fragment, WebView的状态保存和恢复
- Fastdfs入门启示