/*
* 密码加密工具类
* @param password
* @return
* @throws Exception
* */
public static String md5(String password){
try{
//创建加密对象
MessageDigest md5 = MessageDigest.getInstance("md5");
//加密密码
byte[] by = md5.digest(password.getBytes());
//创建编码对象
BASE64Encoder encoder = new BASE64Encoder();
//对结果编码
return encoder.encode(by);
}catch(Exception e){
throw new RuntimeException(e);
}
}
工具类 定义守则
1,有异常抛出,不交给方法
2,变量,new对象,在static中
3,提升在static变量,对象 作用域
4,变量 对象 方法 全部定义成static 方便直接调用
密码加密
MessageDigest.getInstance(“md5”);
将 md5 这个字符窜 实例化
用MessageDigest 对象 封装
md5.digest(password.getBytes())
将从参数传入的密码,转换为字节数组 与 md5 融合
也就是作个 无序的字符串拼接
//创建编码对象
BASE64Encoder encoder = new BASE64Encoder();
//对结果编码
return encoder.encode(by);
用 BASE64Encoder() 基础64 编码器
将这个 md5+password 编译成密码
提升破译难度,增大破译成本。
防止密码被破译方法
- 提升密码的数据类型
- 多重加密
- 不用群众密码
- 提升设备,增大破译成本