BCrypt管理员登录密码验证
生活随笔
收集整理的這篇文章主要介紹了
BCrypt管理员登录密码验证
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、簡單入門測試
BCrypt不支持反運算,只支持密碼校驗
package com.william.test;import org.springframework.security.crypto.bcrypt.BCrypt;/*** @author :lijunxuan* @date :Created in 2019/7/11 11:34* @description :* @version: 1.0*/ public class TestBcrypt {public static void main(String[] args) {//獲取嚴值String gensalt = BCrypt.gensalt();//加密String encoder = BCrypt.hashpw("123456", gensalt);System.out.println("pwd===="+encoder);/*** 驗證密碼的正確性*/boolean isCheckpw = BCrypt.checkpw("123456", "$2a$10$IOWE94GVyfjnQfvUIqIbXeEVF9XKjK/3Zua6JuXiVgO1ZAkcK9NwS");System.out.println("檢查判斷密碼的結果:"+isCheckpw);} }二、場景引入,管理員登錄密碼驗證
(1)AdminController
/*** 管理員登錄* @param admin* @return*/@PostMapping(value = "/login")public Result login(@RequestBody Admin admin){boolean isLogin =adminService.isLogin(admin);if (isLogin){return new Result(true,StatusCode.OK,"登錄成功",ResultMap);}else {return new Result(false,StatusCode.ERROR,"登錄失敗");}}(2)AdminService
/*** 管理員登錄* @param admin* @return*/Boolean isLogin(Admin admin);(3)AdminServiceImpl
/*** 用戶登錄* @param admin* @return*/@Overridepublic Boolean isLogin(Admin admin) {if (admin==null){return false;}Admin admin1 = new Admin();//獲取用戶輸入的明文用戶名admin1.setLoginName(admin.getLoginName());admin1.setStatus("1");//從數據庫中查詢出用戶對象Admin adminDB = adminMapper.selectOne(admin1);//如果根據用戶名查詢不到數據,則判斷用戶名輸入錯誤if (adminDB==null){return false;}else {//如果用戶名輸入正確則驗證密碼是否正確return BCrypt.checkpw(admin.getPassword(),adminDB.getPassword());}}總結
以上是生活随笔為你收集整理的BCrypt管理员登录密码验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最近网上很火的一句话 最近很火的经典短句
- 下一篇: JWT 实现微服务鉴权