登录密码的两次MD5加密设计的原因和流程

一、为什么要对密码进行MD5

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

二、为什么要对密码进行两次MD5加密

单次的MD5不一定安全,在实验室条件下可能通过碰撞进行解码。并且针对一些简单的密码,有一些反查md5的软件,对密码进行两次md5操作是为了更好地保密

三、两次MD5加密整体流程如何实现

整体加密流程:

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

登录流程:

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

注册流程:

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

你可能感兴趣的:(登录密码的两次MD5加密设计的原因和流程)