设为首页 加入收藏

TOP

Java中MD5加密实现
2015-02-25 22:43:52 来源: 作者: 【 】 浏览:30
Tags:Java MD5 加密 实现

Java中MD5加密实现


Java中MD5加密实现


package com.linuxidc;


import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;


/*
?* 验证MD5
?* 1.初始化MessageDigest信息摘要对象
?* 2.传入需要计算的字符串更新摘要信息
?* 3.计算信息摘要
?* 4.将byte[] 转换为找度为32位的16进制字符串
?*/
public class MD5 {
? ? /*
? ? * 生成md5 有传入参数字符串
? ? */
? ? public void generateMD5(String input){
? ? ? ?
? ? ? ? try {
? ? ? ? ? ? //1.初始化MessageDigest信息摘要对象,并指定为MD5不分大小写都可以
? ? ? ? ? ? MessageDigest md=MessageDigest.getInstance("md5");
? ? ? ? ? ? //2.传入需要计算的字符串更新摘要信息,传入的为字节数组byte[],
? ? ? ? ? ? //将字符串转换为字节数组使用getBytes()方法完成
? ? ? ? ? ? //指定时其字符编码 为utf-8
? ? ? ? ? ? md.update(input.getBytes("utf-8"));
? ? ? ? ? ? //3.计算信息摘要digest()方法
? ? ? ? ? ? //返回值为字节数组
? ? ? ? ? ? byte [] hashCode=md.digest();
? ? ? ? ? ? //4.将byte[] 转换为找度为32位的16进制字符串
? ? ? ? ? ? ? ? //声明StringBuffer对象来存放最后的值
? ? ? ? ? ? StringBuffer sb=new StringBuffer();
? ? ? ? ? ? //遍历字节数组
? ? ? ? ? ? for(byte b:hashCode){
? ? ? ? ? ? ? ? //对数组内容转化为16进制,
? ? ? ? ? ? ? ? sb.append(Character.forDigit(b>>4&0xf, 16));
? ? ? ? ? ? ? ? //换2次为32位的16进制
? ? ? ? ? ? ? ? sb.append(Character.forDigit(b&0xf, 16));
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println("加密后的结果是:"+sb.toString());
? ? ? ? } catch (NoSuchAlgorithmException e) {
? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } catch (UnsupportedEncodingException e) {
? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }


? ? public static void main(String[] args) {
? ? ? ? //声明加密MD5类的对象
? ? ? ? MD5 md5=new MD5();
? ? ? ? //使用Scanner来输入一个字符
? ? ? ? Scanner scanner=new Scanner(System.in);
? ? ? ? System.out.println("请输入要加密的内容:");
? ? ? ? String input = scanner.nextLine();
? ? ? ? //调用加密方法
? ? ? ? md5.generateMD5(input);


? ? }
?
}


结果:


请输入要加密的内容:
学习MD5加密过程
加密后的结果是:b826cdac46f01dcc8ccc60a76cebf858


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C#如何在生成文件夹或者文件时候.. 下一篇Perl中的真与假

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: