火车抢票系统的实现(二)实现登录功能

该博客详细介绍了火车抢票系统登录功能的实现过程,包括数据库设计、加密策略、参数校验和分布式Session管理。在加密方面,采用两次MD5确保传输安全;在登录流程中,利用MD5和盐值增强安全性,并通过全局异常处理器处理错误。分布式Session通过Redis存储,确保多服务器环境下的会话一致性。此外,还提供了相关代码和依赖引入的说明。
摘要由CSDN通过智能技术生成

数据库设计

CREATE TABLE miaosha_user (
  `id` bigint(20) NOT NULL COMMENT '用户ID,手机号码',
  `nickname` varchar(255) NOT NULL,
  `password` varchar(32) DEFAULT NULL COMMENT 'MD5(MD5(pass明文+固定salt) + salt)',
  `salt` varchar(10) DEFAULT NULL,
  `head` varchar(128) DEFAULT NULL COMMENT '头像,云存储的ID',
  `register_date` datetime DEFAULT NULL COMMENT '注册时间',
  `last_login_date` datetime DEFAULT NULL COMMENT '上蔟登录时间',
  `login_count` int(11) DEFAULT '0' COMMENT '登录次数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4


加密:两次MD5

引入MD5工具类,添加MD5Util

http是明文登录的,不安全

  • 首先客户端 md5 再传输给服务端
  • 服务端接受到之后+salt再md5,写入到数据库当中(防止数据库被盗)

pom.xml中添加依赖:

<dependency>
 <groupId>commons-codec</groupId>
 <artifactId>commons-codec</artifactId>
</dependency>
<dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-lang3</artifactId>
 <version>3.6</version>
</dependency>

编写login.html

(代码可见github)

引入jquery.js、bootstrap、jquery-validation、layer.js

(文件见github)

domain中创建对应的user


public class MiaoshaUser {
   
	private Long id;
	private String nickname;
	private String password;
	private String salt;
	private String head;
	private Date registerDate;
	private Date lastLoginDate;
	private Integer loginCount;
}

参数校验

引入spring-boot-starter-validation

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值