欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA加密技术-----MD5 与SHA 加密

程序员文章站 2024-03-16 20:08:04
...

关于JAVA的加密技术有很多很多,这里只介绍加密技术的两种 MD5与 SHA。

MD5与SHA是单向加密算法,也就是说加密后不能解密.

MD5 ---信息摘要算法,广泛用于加密与解密技术,常用于文件校验,经过MD5后都能生成唯一的MD5值,比如现在的ISO校验.

SHA ---安全散列算法,数字签名等密码学应用中重要的工具,被广泛的应用于电子商务等信息安全领域。虽然,SHA与MD5通过碰撞法都被**了,但SHA任然是公认的安全加密算法,较之MD5更为安全.

下面我们通过代码来看下,如何实现MD5与SHA的加密.

package com.suning.security;

import java.security.MessageDigest;
import sun.misc.BASE64Encoder;

public class DigestPwd {

	/**
	 * @param args
	 */
	/**
	 * MD5加密
	 * @param args
	 */
	public String getMD5(String pwd) throws Exception{
		//返回实现指定摘要算法的 MessageDigest 对象。
		MessageDigest md5=MessageDigest.getInstance("MD5");
		//使用指定的 byte 数组更新摘要。
		md5.update(pwd.getBytes("UTF-8"));
		//开始进行加密
		byte[] digesta=md5.digest();
		//通过我们不使用上述的md5加密。通常将md5产生的字节数组交给base64再加密一把,得到相应的字符串
		 BASE64Encoder base64=new BASE64Encoder();
		String bs= base64.encode(digesta);
		return bs;
	}
	
	/**
	 * SHA加密
	 * @param args
	 * @throws Exception 
	 */
	public String getSHA(String pwd) throws Exception{
		MessageDigest sha=MessageDigest.getInstance("SHA");
		sha.update(pwd.getBytes("UTF-8"));
		byte[] digesta=sha.digest();
		 BASE64Encoder base64=new BASE64Encoder();
		String bs= base64.encode(digesta);
		return bs;
	}

	
	public static void main(String[] args) throws Exception {
		DigestPwd dp=new DigestPwd();
		System.out.println("MD5加密后的结果: "+dp.getMD5("123456"));
		System.out.println("SHA加密后的结果 :"+dp.getSHA("123456"));

	}
}