Java中MD5加密
1、创建MD5加密类,编写加密方法
1、
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;
public class MD5 {
public static String getPwd(String pwd) {
try {
// 创建加密对象
MessageDigest digest = MessageDigest.getInstance("md5");
// 调用加密对象的方法,加密的动作已经完成
byte[] bs = digest.digest(pwd.getBytes());
2、衔接(1)
// 接下来,我们要对加密后的结果,进行优化,按照Oracle的优化思路走
// Oracle的优化思路:
// 第一步,将数据全部转换成正数:
String hexString = "";
for (byte b : bs) {
// 第一步,将数据全部转换成正数:
int temp = b & 255;
// 第二步,将所有的数据转换成16进制的形式
// 注意:转换的时候注意if正数>=0&&<16,那么如果使用Integer.toHexString(),可能会造成缺少位数
// 因此,需要对temp进行判断
if (temp >= 0&&temp < 16 ) {
// 符合条件,手动补上一个“0”
hexString = hexString + "0" + Integer.toHexString(temp);
} else {
hexString = hexString + Integer.toHexString(temp);
}
}
return hexString;
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "失败";
}
3、创建测试类、测试方法
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入密码:");
String pwd = MD5.getPwd(input.next());
System.out.println("MD5值:");
System.out.println(pwd);
}