Java MD5 实现加密

工具:Eclipse

源码地址:https://github.com/Sunjinhang/Java

使用java自带的工具类实现MD5加密

加密函数

public static String Encrypt(String str)
	{
		StringBuffer code = new StringBuffer();
		
		MessageDigest md5 = null;
		
		try {
			md5 = MessageDigest.getInstance("MD5");
		}
		catch(Exception ex) {
			ex.printStackTrace();
		}		
		char[] charArr = str.toCharArray();		
		byte[] byteArr = new byte[charArr.length];		
		for(int i = 0;i < charArr.length; i++) {
			byteArr[i] = (byte)charArr[i];			
		}
		
		byte[] md5Arr = md5.digest(byteArr);
				
		for(int i = 0;i < md5Arr.length; i++) {
			int value = (int)md5Arr[i] & 0xff;
			if(value < 16)
			{
				code.append("0");
			}
			code.append(Integer.toHexString(value));
		}
		
		return code.toString();
	}

主要原理就是调用java自带的 MessageDigest,先将用户输入的字符串拆分成单个的字符,以数组形式存储,然后遍历数组,根据ASCII码表对应出每个字符的ASCII码,然后再调用加密函数对转换出的ASCII码数组进行加密。

其中值得注意的时 byte & 0xff 是二进制补位操作,

加密完成后最后转换成字符串的形式呈现

测试:

public static void main(String[] args) {
		
		String str = Encrypt("123456");
		System.out.println(str);
		
	}

输出结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值