MD5

MD5简介:

相信大家对于“MD5加密”这个词都比较耳熟,即使很多人并没有使用过,但总是听人提起,那么究竟什么是MD5呢?

MD5:
信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,其可以产生出一个128位(16字节)的散列值(即哈希值)
主要用途:
MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的加密保护领域
应用举例:
MD5较为常用的一处便在于用户的进行登录操作时,用户的登录信息可以被保护和隐藏起来,即使是开发人员也无法直接查看被加密的原文(虽然可以进行暴力破解),用户只在每次登录时,将登录信息进行加密并与数据库中已保存的登录信息进行比对,即可完成用户的登录验证
以下是java中比较常见的几种MD5加密方法
对字符串

	public static String MD5Encode(String sourceString) {
		String resultString = null;
		try {
			resultString = new String(sourceString);
			MessageDigest md = MessageDigest.getInstance("MD5");
			resultString = byte2hexString(md.digest(resultString.getBytes()));
		} catch (Exception ex) {
		}
		return resultString;
	}

对数组

/**
	 * 以字符串形式显示字节数组内容
	 */
	public static final String byte2hexString(byte[] bytes) {
		StringBuffer buf = new StringBuffer(bytes.length * 2);
		for (int i = 0; i < bytes.length; i++) {
			if (((int) bytes[i] & 0xff) < 0x10) {
				buf.append("0");
			}
			buf.append(Long.toString((int) bytes[i] & 0xff, 16));
		}
		return buf.toString();
	}

对文件

public static String getMD5(File file) throws Exception {
		FileInputStream in = new FileInputStream(file);
		FileChannel ch = in.getChannel();
		MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update(byteBuffer);
		return byte2hexString(md.digest());
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值