ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

密码加密几种处理方式

2021-11-24 18:03:37  阅读:146  来源: 互联网

标签:password 加密 明文 密码 密文 几种 salt


1、首先介绍一下常规的登录认证(非安全性)

数据库表如下所示:
在这里插入图片描述
用户通过表单提交用户名,密码两个字段查询数据库匹配,实现登录认证功能,但存在的安全隐患问题太多:

(1)数据库密码以明文的形式进行存储。

(2)数据传输的过程中未对数据进行加密处理。

2、针对以上两个问题进行分析和解决

安全加密:首先对数据库表的password字段进行摘要md5处理,sql语句如下:
在这里插入图片描述
MD5加密后的数据
在这里插入图片描述
l 数据库密码加密后,校验的逻辑就发生了些变化,需要对提交的密码进行加密之后再做对比,但是这样子还是不安全。

(1)通过以上步骤,我们只对数据库的password明文字段进行了简单的MD5加密,进入http://www.cmd5.com/ 输入加密后的密文进行解密后可以得到明文密码
在这里插入图片描述

(2)容易根据密文位数推测算法,从而使用工具破解。

(3)真实密码相同,加密过的密码也相同。

3、接下来我们介绍一下对其进行加盐处理

l 在表中添加一列salt字段(盐),内容随意输入23sd2,然后和原来的明文密码123456结合,再进行md5加密
在这里插入图片描述
在这里插入图片描述
说明:
所谓的salt字段就是一个随机的字段,具体随机算法就不讨论了,每当用户注册账户时,后台就给它随机生成一个不同的字段,然后根据password和salt字段结合进行摘要处理,存在数据库表中的password字段,这样一来,原来明文都是123456生成的密文就不一样了。

以上的步骤我们只是对数据库进行了加密,为了防止用户输入密码在传输的过程中被抓包工具获取,我们还要在密码传输的过程中进行加密,这样可以使得获取到的也是密文。

4、最后介绍下BCrypt加盐加密

  • 经过BCryptPasswordEncoder加密后的内容,不需要专门的salt字段存储盐,而是在密文中。

在这里插入图片描述

  • BCrypt密码图解

在这里插入图片描述

  • Bcrypt有四个变量:

saltRounds: 正数,代表hash杂凑次数,数值越高越安全,默认10次。

myPassword: 明文密码字符串。

salt: 盐,一个128bits随机字符串,22字符

myHash: 经过明文密码password和盐salt进行hash

  • 如何校验正确性

在校验时,从密文中取出盐salt,salt跟password进行hash,得到的结果跟保存在DB中的hash进行比对。

总结:

l 对于用户的密码保护,数据库对敏感的字符内容一定要进行加密之后存储。

l 如果只是单纯的对密码进行加密,密码字符一样会导致加密后的内容也一样,会出现破解一个就可以破解一片的情况。

l 通过对密码加盐(混入随机字符拼接在密码明文中)之后加密,可以增加系统复杂度,得到更强更安全的密文摘要值。

标签:password,加密,明文,密码,密文,几种,salt
来源: https://blog.csdn.net/weixin_45476233/article/details/121520957

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有