欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java安全架构____java MD5加密,

来源: javaer 分享于  点击 8653 次 点评:8

java安全架构____java MD5加密,


package com.security.md5;

import java.security.MessageDigest;

/**
 * @author md5
 * 
 */
public class Md5 {
	public static void main(String[] args) throws Exception {
		System.out.println("简单md5加密____:"+md5Encode("123456"));
		//避免不同的人有相同的密文不安全
		System.out.println("带key映射的md5加密___:"+md5KeyEncode("zhangsan","123456"));
	}
	/**
	 * 简单加密
	 * @param generalStr 明文
	 * @return 密文
	 * @throws Exception
	 */
	public static String md5Encode(String generalStr) throws Exception {
		MessageDigest messageDigest = MessageDigest.getInstance("MD5");
		messageDigest.update(generalStr.getBytes());
		// 根据明文的字节数组构造 加密后的字符串 可以增加位移算法 独立的key等
		byte[] bytes = messageDigest.digest();
		String md5Str = "";
		for (int i = 0; i < bytes.length; i++) {
			// System.out.println("每个字节数组数值:"+(char)bytes[i]);
			// 判断每个字节的数值 小于0的会出现负数 不要
			int temp = 0;
			if (bytes[i] < 0) {
				temp = 256 + bytes[i];
			} else {
				temp = bytes[i];
			}
			// 当位数不够补位
			if (temp < 16) {
				md5Str = md5Str + "0";
			}
			md5Str = md5Str + Integer.toString(temp, 16);
		}
		return md5Str;
	}
	/**
	 * 用户名映射
	 * @param userName 映射key
	 * @param userPwd 明文
	 * @return 密文
	 * @throws Exception
	 */
	public static String md5KeyEncode(String userName, String userPwd) throws Exception {
		String code = userName + userPwd;
		MessageDigest messageDigest = MessageDigest.getInstance("MD5");
		messageDigest.update(code.getBytes("UTF-8"));
		byte[] bytes = messageDigest.digest();
		String md5Str = "";
		for (int i = 0; i < bytes.length; i++) {
			int temp = 0;
			// 当bytes<0
			if (bytes[i] < 0) {
				temp = 256 + bytes[i];
			} else {
				temp = bytes[i];
			}
			// 当位数不够16位时
			if (temp < 16) {
				md5Str = md5Str + "0";
			}
			md5Str = md5Str + Integer.toString(temp, 16);
		}
		return md5Str;
	}

}

//运行结果


//网上对比结果




相关文章

    暂无相关文章
相关栏目:

用户点评