java加密MD5实现及密码验证代码实例

网友投稿 360 2022-12-19


java加密MD5实现及密码验证代码实例

这篇文章主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细zHzumiZ,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

MD5算法具有以下特点:

1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。

2、容易计算:从原数据计算出MD5值很容易。

3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

package test;

import java.io.UnsupportedEncodingException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import org.junit.Test;

public class Teste {

@Test

public void testMd5() {

System.out.println(encrypt("1234567"));

}

@Test

public void testlogin() {

String password = encrypt("123456adfaf");

if(encrypt("123456adfaf").equals(password)) {

System.out.println("密码正确");

} else {

System.out.println("密码错误");

}

}

private String encrypt(String password) {

String passwordMd5 = null;

try {

MessageDigest md5 = MessageDigest.getInstance("MD5");

byte[] bytes = md5.digest(password.getBytes("utf-8"));

passwordMd5 = toHex(bytes);

} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {

e.printStackTrace();

}

return passwordMd5;

}

private static String toHex(byte[] bytes) {

final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();

StringBuilder ret = new StringBuilder(bytes.length * 2);

for (int i=0; i

ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);

ret.append(HEX_DIGITS[bytes[i] & 0x0f]);

}

return ret.toString();

}

}

ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);

ret.append(HEX_DIGITS[bytes[i] & 0x0f]);

}

return ret.toString();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Swing JTextField文本框的代码示例
下一篇:Java泛型初学者之上、下界通配符的深入理解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~