怎么在春天中利用安全加密账户

  介绍

这期内容当中小编将会给大家带来有关怎么在春天中利用安全加密账户,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、原理分析1.1加密原理

首先前端页面发送注册的账户信息到控制器层,然后依次经过服务层和dao层,最后入库。其中对密码的加密应该放在服务层进行,加密后再入库。

Spring security中有一个加密类BCryptPasswordEncoder可以用来对密码进行加密,调用其中的编码方法返回一个加密后的字符串

public  String 编码(CharSequence  rawPassword), {   ,,,String 盐;   ,,,if  (strength 祝辞,0),{   ,,,,,if  (random  !=, null), {   ,,,,,,,salt =, BCrypt.gensalt(强度、,随机);   ,,,,,}   ,,,,,else  {   ,,,,,,,salt =, BCrypt.gensalt(强度);   ,,,,,}   ,,,}   ,,,else  {   ,,,,,salt =, BCrypt.gensalt ();   ,,,}   ,,,return  BCrypt.hashpw (rawPassword.toString(),,盐);   }

使用时可以在春天的配置文件中配置一个加密类的bean,这样在服务中可以直接注入

加密后数据库中存储的是加密过后的字符串。

1.2加密后的登录过程

对密码进行加密后数据库中存储的是加密字符串,用户发起登录请求后,框架会使用相同的加密算法对前端传递的密码进行加密并得到加密字符串,然后和数据库中查询到的字符串进行对比。

<强>二、代码实现

具体的工程代码可以参考我的工程示例,下文中只给出了和添加用户相关的部分。

在配置文件中配置加密类

& lt; bean  id=皃asswordEncoder",,,类=皁rg.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"比;   & lt;才能/bean>

2.1添加用户的页面如下,登记。html

& lt; html>   & lt;才能head>   ,,,& lt; meta  charset=癠TF-8"比;   ,,,& lt; title>注册页面& lt;/title>   & lt;才能/head>   & lt;才能body>      & lt;才能form 行动=?user/add.do",方法=皃ost"比;   ,,,用户名:& lt; input 类型=皌ext", name=皍sername",占位符=扒胧淙胗没白4? lt; br>   ,,,密,码:& lt; input 类型=皃assword", name=皃assword",占位符=扒胧淙朊苈搿白4? lt; br>   ,,,& lt; input 类型=皊ubmit",价值=https://www.yisu.com/zixun/弊⒉帷?>   

2.2控制器层创建一个增加用户的方法

@RestController   @RequestMapping (“/user")   public  class  UserController  {      @ autowired才能   private 才能;IUserService  userService;      @PostMapping才能(“/add")   public 才能;String 添加(UserInfo 用户信息){   ,,,userService.add(用户信息);   ,,,return “success";   ,,}   }

2.3服务层

@ autowired   private  BCryptPasswordEncoder  passwordEncoder;   …//省略其他   @Override   public  void  add (UserInfo 用户信息),{//才能对密码加密   userInfo.setPassword才能(passwordEncoder.encode (userInfo.getPassword ()));   userDao.add才能(用户信息);   }

这里的passwordEncoder就是在配置文件中配置的加密豆,注入后可以直接使用

dao层这里就不再列举了。

<强>三、测试

启动工程并成功登录后,跳转到首页,

怎么在春天中利用安全加密账户

选择注册新账号后跳转到注册页面

怎么在春天中利用安全加密账户

输入账户和密码后注册,会在数据库中插入一条新的记录。

怎么在春天中利用安全加密账户”> <br/> </p> <p>这里我页面上输入的是admin/admin,数据库中存储的密码是加密后的</p> <p> <代码> 2 10美元URSaaafrPOCjFYvhrhQbku2美元/l36IJ0zH0G8xeJzf5lAH2F1JJ1ybG </代码> </p> <p> <强>四,用加密后的账号登录</强> </p> <p>此时如果使用刚刚新建的这个账号进行登录就会登录失败。因为我们并没有配置Spring security认证时的加密方式,默认是不进行加密,所以会直接将前台输入的密码和数据库中的加密字符串进行比较。</p> <p>要使用这个账号登录还需要进行如下配置<h2 class=怎么在春天中利用安全加密账户