介绍
这期内容当中小编将会给大家带来有关怎么在春天中利用安全加密账户,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
一、原理分析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/弊⒉帷?> 形式 身体>