MD5加密

1.MD5(message-digest algorithm 5)信息摘要算法,
  它的长度一般是32位的16进制数字符如(81dc9bdb52d04dc20036dbd8313ed055)
2.由于系统密码明文存储容易被黑客盗取
3.应用:注册时,将密码进行md5加密,存到数据库中,防止可以看到数据库数据的人恶意篡改;登录时,将密码进行md5加密,与存储在数据库中加密过的密码进行比对
4.md5不可逆,即没有对应的算法,无法从产生的md5值逆向得到原始数据。
   但是可以使用暴力破解,这里的破解并非把摘要还原成原始数据,如暴力枚举法

例如:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
    public final static String getMD5(String str){
        try {
            MessageDigest md = MessageDigest.getInstance("SHA");//创建具有指定算法名称的摘要
            md.update(str.getBytes());                    //使用指定的字节数组更新摘要
            byte mdBytes[] = md.digest();                 //进行哈希计算并返回一个字节数组

            String hash = "";
            for(int i= 0;i

测试:

import com.bjpowernode.utils.MD5Util;

public class TestMD5Util {
    public static void main(String[] args) {
        String a = "123456";
        String md5 = MD5Util.getMD5(a);
        System.out.println(md5);
    }
}

结果是:  7c4a8d09ca3762af61e59520943dc26494f8941b 

你可能感兴趣的:(哈希算法,算法,java)