MD5加密算法实现
原创 52cxy 04-04 09:08 阅读数:513

        MD5(Message Digest Algorithm 5)中文名为消息摘要算法第五版,是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

MD5作为一种常用的摘要算法(或指纹算法),其具有以下几个重要的特点(个人观点):

        1、输入任意长度信息,输出长度固定,MD5 可输入任意长度的信息,其输出均为128位(bit)固定长度的二进制数据。

        2、运算速度快:MD5的运算均为32位 与、或、非、位移等位运算,因此其运算速率快,几乎不消耗CPU时间。


        3、不可逆:根据MD5的的散列结果,无法计算出原始数据(查字典除外)。


        4、碰撞性:原始数据与其MD5散列结果并非一一对应,存在多个原始数据的MD5结果相同的可能性。


        5、不安全:2011年,RFC 6151 禁止MD5用作密钥散列消息认证码。


      一、PHP

 $enData = md5('ItUtil.net');
 var_dump(enData);

  

     二、JAVA

public class MD5 {
	public static String md5(String plainText) {
		byte[] secretBytes = null;
		try {
			secretBytes = MessageDigest.getInstance("md5").digest(
			plainText.getBytes());

		} catch (NoSuchAlgorithmException e) {
			throw new RuntimeException("没有这个md5算法!");
		}

		String md5code = new BigInteger(1, secretBytes).toString(16);
		for (int i = 0; i < 32 - md5code.length(); i++) {
			md5code = "0" + md5code;
		}
		return md5code;

	}
	
	public static void main(String[] args) throws Exception {
		final String data = "ItUtil.net";
		String enData = md5(data);
		System.out.println("加密后的数据:" + enData);
	}
}


共0条评论
我要评论