登录密码两次MD5加密设计

为什么要对密码MD5

密码明文传递或者直接写到数据库中,都有被偷看的风险

为什么要对密码做两次MD5

现在存在的一些反查md5的软件,做两次为了更好的保密

整体流程如何实现

整体加密流程

MD5(MD5(pass明文+固定salt)+随机salt)
第一次固定salt写死在前端
第二次加密采用随机的salt 并将每次生成的salt保存在数据库中

登录流程:

前端对用户输入的密码进行md5加密(固定的salt)
将加密后的密码传递到后端
后端使用用户id取出用户信息
后端对加密后的密码在进行md5加密(取出盐),然后与数据库中存储的密码进行对比,
ok登录成功,否则登录失败

注册流程

前端对用户输入的密码进行md5加密(固定的salt)
将加密后的密码传递到后端
后端随机生成一个salt,
使用生成salt对前端传过来的密码进行加密,然后将加密后密码和salt一起保存到db中

一些代码

例子代码
https://gitee.com/potatobeancox/potato-seckill/blob/master/src/main/java/com/potato/seckill/controller/LoginController.java

你可能感兴趣的:(后端,后端技术点设计)