关于明文密码的加密处理
明文密码存在数据库中不安全
所以我们需要用到加密算法处理
md5加密方式是比较经典的一种
注册的时候对用户输入的明文本密码加密,登陆的时候把用户输入的明文密码加密后再与数据库中
保存的密码字符串比较如果一致,代表登陆成功
package test;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;
public class TestMd5 {
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
// 注册时的密码
String pwd = "abc123";
// 保存的时候的内容
String pwdMd5 = makeMd5(pwd);
System.out.println(pwdMd5);
// 登陆的时候
System.out.println("请输入密码:");
Scanner scanner = new Scanner(System.in);
String next = scanner.next();
// 如果用户输入 abc123
String s = makeMd5(next);
if (s.equals(pwdMd5)) {
System.out.println("登陆成功");
} else {
System.out.println("登陆失败");
}
}
private static String makeMd5(String pwd) throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] utf8s = md5.digest(pwd.getBytes("UTF8"));
String md5Str = "";
for (int i = 0; i < utf8s.length; i++) {
String substring = Integer.toHexString(utf8s[i] | 0xFFFFFF00).substring(6);
md5Str += substring;
}
return md5Str;
}
}