POST提交数据:账号、密码、确认密码、邮箱。
Service层检查账号、邮箱是否注册过(查数据库),检查两个密码是否相同,对密码加盐(32位UUID取后5位)并MD5加密,加入数据库。发送激活路径到邮箱。激活路径包括了UserId和激活码(UUID)。浏览器访问该路径后按照UserId查数据库看激活码是否正确,如果正确激活成功status设为1.
User表属性:id、账号、盐、密码、邮箱、种类(普通、版主、管理员)、激活状态、创建时间
MD5加密:任意长度变成128位。(分为4组32位,也就是32个16进制数)经过填充(求余,填充01令它对512取余为448,最后加上64位原二进制数的长度,最终为512的倍数)、分为4组,设置初始的链接变量,循环进行非线性运算,4次循环。加快雪崩,并且加盐之后更难被破解。
参考https://blog.csdn.net/hla199106/article/details/45129963
一、访问注册页面
-
LoginController.java
-
register.html
二、提交注册数据
提交注册数据;
服务端验证账号是否存在、邮箱是否被注册;
服务端发送激活邮件。
- 导入判断字符串、集合空值情况的jar包:commons-lang3
- 配置文件:
- CommunityUtil.java:生成随机字符串、MD5加密
- UserService.java
5.LoginController.java
- register.html、operate-result.html
提交注册数据:提交表单时POST方法,
register.html:
register.html中属性名相同,可以被LoginController中的user接收到
三、激活注册账号
- 常量接口CommunityConstant
- UserService.java
- LoginController.java
- 登陆页面LoginController.java, login.html