java加密MD5实现及密码验证代码实例-创新互联

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

创新互联-专业网站定制、快速模板网站建设、高性价比铁山港网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式铁山港网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖铁山港地区。费用合理售后完善,10年实体公司更值得信赖。

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> 4) & 0x0f]);
      ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
    }
    return ret.toString();
  }
}

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:java加密MD5实现及密码验证代码实例-创新互联
文章分享:http://azwzsj.com/article/psdsh.html