加密密码
数据库中存储的密码不能是明文的,需要进行加密加密方式: md5
admin进行md5加密后:21232F297A57A5A743894AOE4A801FC3登陆:
登陆时拿加密后的密码去查询数据库
密文是可逆,所以加密的时候需要加盐md5加密工具类(不需学会,直接用):
import java.security.MessageDigest; /** * MD5加密工具类 */ public class Md5 { /** * md5加密 * @param key * 输入的数据 * @return 加密后的数据 */ public static String md5(String key) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; try { byte[] btInput = key.getBytes(); // 获得MD5摘要算法的 MessageDigest 对象 MessageDigest mdInst = MessageDigest.getInstance("MD5"); // 使用指定的字节更新摘要 mdInst.update(btInput); // 获得密文 byte[] md = mdInst.digest(); // 把密文转换成十六进制的字符串形式 int j = md.length; char str[] = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } return new String(str); } catch (Exception e) { return null; } } }
使用md5加密:
import java.util.Random; import java.util.Scanner; public class T { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入用户:"); String username = sc.next(); System.out.println("请输入密码:"); String password = sc.next(); System.out.println("加密后的密码:" + Md5.md5(password)); //加盐:将用户的用户名作为眼进行加密 System.out.println("加密加盐后的密码1:" + Md5.md5(username + password)); System.out.println("加密加盐后的密码2:" + Md5.md5(username.charAt(new Random().nextInt(username.length())) + password)); } }
运行结果:
Java md5加密
最新推荐文章于 2024-04-30 09:54:20 发布