1、新建一个java项目,项目的名称为javamd5。
2、打开这个javamd5.java这个文件,在main方法中增加代码,定义MessageDigest 的变量,初始化为MD5加密方式。MessageDigest md=MessageDigest.getInstance("md5");
3、把“123456”原密码加密成MD5的字节数组。byte[] mimamd5=md.digest("123456".getBytes());
4、MD5的编码不能显示成字符,这是“123456”的MD5的编码[-31, 10, -36, 57, 73, -70, 89, -85, -66, 86, -32, 87, -14, 15, -120, 62],把字节数组已base64的编码存储。String mima=Base64.encode(mimamd5);
5、把原密码的MD5的编码和base64的编码输出。byte[] mimamd5=md.digest("稆糨孝汶;123456".getBytes());System.err.println(Arrays.toString(mimamd5));String mima=Base64.encode(mimamd5);System.err.println(mima);MD5[-31, 10, -36, 57, 73, -70, 89, -85, -66, 86, -32, 87, -14, 15, -120, 62]base644QrcOUm6Wau+VuBX8g+IPg==
6、验证口令:如果输入的密码加辩尢霆靡密成MD5编码,和以前的MD5的编码比较,相等话正确,否者的话错误!String input="12345鲂番黟谊6789"; if(Base64.encode(md.digest(input.getBytes())).equals(mima)){ System.err.println("密码正确!"+Base64.encode(md.digest(input.getBytes()))); }else{ System.err.println("密码错误!"+Base64.encode(md.digest(input.getBytes()))); }
7、把输入的密码input="123456",运行结果是正确;input="123456789"运行结果是错误的。