BCrypt密碼加密
BCrypt比MD5安全,因爲其內部引入加鹽(29個隨機字符)了機制。
import org.springframework.security.crypto.bcrypt.BCrypt;
public class testBCrypt {
public static void main(String[] args) {
//1.加密(用戶密碼加密:當把用戶的密碼存入數據庫中時,進行加密)
//獲取鹽
String gensalt = BCrypt.gensalt();
//基於當前的鹽對密碼進行加密
String hashpw = BCrypt.hashpw("123456", gensalt);
System.out.println("加密後的密文:"+hashpw);
//2.解密
boolean checkpw = BCrypt.checkpw("123456", hashpw);
System.out.println("解密結果:"+checkpw);
}
}
login方法
@Override
public boolean login(Admin admin) {
//根據登錄名獲取管理員信息
Admin admin1 = new Admin();
admin1.setLoginName(admin.getLoginName());
admin1.setStatus("1");
Admin adminResult = adminMapper.selectOne(admin1);
if (adminResult == null){
return false;
}else{
//對密碼進行校驗
return BCrypt.checkpw(admin.getPassword(),adminResult.getPassword());
}
//返回結果
}
@PostMapping("/login")
public Result login(@RequestBody Admin admin){
boolean login = adminService.login(admin);
if (login){ //如果登錄成功
HashMap<String, String> info = new HashMap<>();
info.put("username",admin.getLoginName());
//String token = JwtUtil.createJWT(UUID.randomUUID().toString(), admin.getLoginName(), null);
//info.put("token",token);
return new Result(true, StatusCode.OK,"登陸模式",info);
}else {
return new Result(false,StatusCode.LOGINERROR,"用戶名或者密碼錯誤");
}
}