【MD5】采用MD5+盐的加密方式完成注册用户和登录账号
生活随笔
收集整理的這篇文章主要介紹了
【MD5】采用MD5+盐的加密方式完成注册用户和登录账号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MD5的pom
<!-- 專門做MD5的加密包--><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId></dependency>需求分析
需求解決
注冊用戶代碼
1.生成slat的工具類(自己隨便寫的,保證生成的數字不一樣就行)
public class SlatUtile {public static Integer createSlat(){int i = new Random().nextInt();return i;} }2.注冊用戶mapper
@Repository public interface AddUserMapper {@Insert("insert into user(userid,username,phonenumber,password,slat)value(#{userid},#{username},#{phonenumber},#{password},#{slat})")Integer addUser(Integer userid, String username,String phonenumber,String password,Integer slat); }3.注冊用戶service
//service接口 public interface AddUserService {Integer addUser(Integer userid, String username,String phonenumber,String password,Integer slat); } @Service public class AddUserServiceImp implements AddUserService {@Autowiredprivate AddUserMapper addUserMapper;//注冊新用戶,密碼進行采用MD5+鹽加密@Overridepublic Integer addUser(Integer userid,String username,String phonenumber,String password,Integer slat) {Integer slatforthis = SlatUtile.createSlat(); //每次用戶注冊新生成一個saltString md5password = DigestUtils.md5Hex(password+slatforthis); //對密碼進行加密Integer integer = addUserMapper.addUser(userid, username, phonenumber, md5password,slatforthis);return integer;} }4.注冊用戶controller
@RestController public class AddUserController {@Autowiredprivate AddUserService addUserService;@RequestMapping("adduser")public String adduser(Integer userid, String username, String phonenumber, String password,Integer slat) {Integer integer = addUserService.addUser(userid, username, phonenumber, password,slat);if (integer == 1){return "新建用戶完成";}else {return "新建用戶失敗";}} }5.測試
注冊密碼為111
?數據庫密碼完成加密,如圖所示
登錄用戶代碼
首先需要個根據userid查找user的查找代碼,這里我就不寫了(為了獲取slat)
1.登入用戶mapper
@Repository public interface LoginMapper {@Select("select * from user where userid = #{userid} and password = #{password}")UserVO login(Integer userid,String password); }2.登入用戶service
//接口層 public interface Md5LoginService {UserVO login(Integer userid, String password); } @Service public class Md5LoginServiceImp implements Md5LoginService {@Autowiredprivate LoginMapper loginMapper;@Autowiredprivate FindUserbyIdMapper findUserbyIdMapper;@Overridepublic UserVO login(Integer userid, String password) {UserVO user = findUserbyIdMapper.findUserById(userid); //根據userid查找userString salt = user.getSlat(); //獲得當前用戶的saltString md5password = DigestUtils.md5Hex(password + salt); //獲得加密密碼UserVO userVO = loginMapper.login(userid, md5password);return userVO;} }主要邏輯是如果輸入的未加密密碼和slat正確,加密后得到的字段和數據庫的password字段是相同的
3.登入用戶controller
@RestController public class Md5LoginController {@Autowiredprivate Md5LoginService md5LoginService;@RequestMapping("md5login")public UserVO md5login (Integer userid,String password){UserVO userVO = md5LoginService.login(userid, password);return userVO;} }4.驗證
登入成功(密碼111)
?
登入失敗,未作處理?
總結
以上是生活随笔為你收集整理的【MD5】采用MD5+盐的加密方式完成注册用户和登录账号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记忆力太差了,怎么回事情呢?
- 下一篇: Authentication faile