前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >密码的加密加盐处理

密码的加密加盐处理

原创
作者头像
用户8870853
修改2021-08-31 11:00:31
2.2K0
修改2021-08-31 11:00:31
举报

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

l 数据库表如下所示:

<form action="index.jsp" method="post"> 账 号:<input type="text" name="username"/><br/> 密 码:<input type="password" name="password"><br/><br/> <input type="submit" value="提交"><br/> </form>

l 用户通过表单提交用户名,密码两个字段查询数据库匹配,实现登录认证功能,但存在的安全隐患问题太多:

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

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

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

l 安全加密:首先对数据库表的password字段进行摘要md5处理,sql语句如下:

l md5加密后的数据

l 数据库密码加密后,校验的逻辑就发生了些变化,需要对提交的密码进行加密之后再做对比,但是这样子还是不安全。

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

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

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

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

l 在表中添加一列salt字段(盐),内容随意输入23sd2,然后和原来的明文密码123456结合,再进行md5加密

说明:所谓的salt字段就是一个随机的字段,具体随机算法就不讨论了,每当用户注册账户时,后台就给它随机生成一个不同的字段,然后根据password和salt字段结合进行摘要处理,存在数据库表中的password字段,这样一来,原来明文都是123456生成的密文就不一样了。

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

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

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

l Bcrypt有四个变量:  saltRounds: 正数,代表hash杂凑次数,数值越高越安全,默认10次。  myPassword: 明文密码字符串。  salt: 盐,一个128bits随机字符串,22字符  myHash: 经过明文密码password和盐salt进行hash  l 如何校验正确性  在校验时,从密文中取出盐salt,salt跟password进行hash,得到的结果跟保存在DB中的hash进行比对。  总结: l 对于用户的密码保护,数据库对敏感的字符内容一定要进行加密之后存储。
l Bcrypt有四个变量: saltRounds: 正数,代表hash杂凑次数,数值越高越安全,默认10次。 myPassword: 明文密码字符串。 salt: 盐,一个128bits随机字符串,22字符 myHash: 经过明文密码password和盐salt进行hash l 如何校验正确性 在校验时,从密文中取出盐salt,salt跟password进行hash,得到的结果跟保存在DB中的hash进行比对。 总结: l 对于用户的密码保护,数据库对敏感的字符内容一定要进行加密之后存储。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、首先介绍一下常规的登录认证(非安全性)
  • 2、针对以上两个问题进行分析和解决
  • 3、接下来我们介绍一下对其进行加盐处理
  • 4、最后介绍下BCrypt加盐加密
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档