java实现MD5加密

之前需要将一个.net项目迁移到java平台,哥一听这个,就懵了,没搞过.net啊,各种坑,各种心酸无力,在此就不表了。不过.net与java语法差不多,凭着我的执着与合理安排,最终项目迁移成功。在此过程中,接触了各种加解密算法,也算是一种收获,本着事后总结的原则,特写此主题文章。

MD5主要用在验签,与此用途相类似的还有RSA。特别是涉及到金额以及一些重要参数传输上,为了避免参数被拦截篡改,故在请求前需要对参数中一些重要参数按照一定顺序进行MD5加密,然后将加密后的签名也一并传输到服务端,服务端再对这些重要参数按照之前约定的顺序进行MD5加密,并将此加密后的密文与传输过来的签名进行equals判断,如果相等,则参数没被篡改,如果不等,则说明参数被篡改。废话不多说,代码奉上。


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

public class MD5Util {

	/**
	 * MD5加密
	 * @param source	源字符串
	 * @return	加密后的密文
	 * @throws NoSuchAlgorithmException
	 * @throws UnsupportedEncodingException
	 */
	public static String encode(String source) throws NoSuchAlgorithmException,
			UnsupportedEncodingException {
		// 确定计算方法
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		// 加密后的字符串
		byte[] bytes = md5.digest(source.getBytes("utf-8"));
		return bytesToHexString(bytes);
	}

	private static String bytesToHexString(byte[] bArray) {
		StringBuilder sb = new StringBuilder(bArray.length);
		String sTemp;
		for (int i = 0,j=bArray.length; i < j; i++) {
			sTemp = Integer.toHexString(0xFF & bArray[i]);
			if (sTemp.length() < 2) {
				sb.append(0);
			}
			sb.append(sTemp);
		}
		return sb.toString();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值