关于盐加密

关于盐加密你需要了解的


什么是盐,盐加密是什么

:密码学中是指通过在密码任意固定位置插入特定字符串,让散列后的结果和使用原始密码的散列结果不相符,这样一个过程我们称之为“加盐”。
盐值 是一组随机的字符串,系统随机生成;Salt可以插在最前面、最后面,也可以插在中间,可分开插入也可倒序。

拓:
第一代密码 => 数据库明文存储,一旦数据库泄露,用户数据全部泄漏

第二代密码 => 数据库加密存储,典型加密算法有 MD5SHA1 ,数据库存储的密码为加密后的密文。但理论上来说不能被解密,即时数据库丢失,由于存储为密文,故根本无法判断用户原始密码。
第三代密码 => 数据库存储MD5加密后的 {明文密码+Salt} 即 MD5(明文密码+salt),进行加盐处理,当密码设置过于简单,第二代密码加密方式也并不可靠了,也常容易被破解。数据库加入一个Salt盐值字段【salt可以是任意字母、数字、或字母数字的组合,必须是随机产生的】,每个用户Salt值均不相同。

加盐加密 是一种对系统登录口令加密的方式,它的实现方式是将每一个口令同一个叫做"盐"salt的n位随机数相关联。 只要口令改变,随机位数就改变。随机数以未加密方式存于口令文件中,每个人可读;不再只是保存加密过的文件,而是先将口令和随机数连接起来一同加密,加密后结果存于口令文件中。

为什么要使用盐加密

在我们实际应用中,出于安全的考虑和数据的保密,常常需要使用到加密算法,一些网站的数据库管理着用户的ID及口令,口令以MD5等加密后的形式存在,但是有些时候可能数据库泄露问题。为解决这种问题,可以考虑盐化的方式,比如存密码不再只是使用传统的明文存储方式,而是可以采用 Hash+Salt (哈希加盐法) 的方式进行密码的存储,这种加入盐值的方式可以防止黑客暴力破解用户ID和口令。

盐值→通过插入在口令后进行HASH算法,即便是相同的口令,插入不同的盐值后生成的HASH值也是不相同的,由于MD5的不可逆性,想要逆向破解MD5也是非常耗时间的。

具体的流程是:

用户注册时:

1、用户在网站注册时提供ID与口令 → 2、系统为用户分配盐值 → 3、盐值插入口令后进行HASH → 4、将ID,HASH值与盐值存入数据库

身份验证时:

1、用户提供ID与口令 → 2、系统在数据库中通过用户提供的ID查找HASH值与盐值 → 3、将盐值插入用户提供的口令后进行HASH → 4、将HASH值与数据库中的HASH值比较,相等则验证成功,反之验证失败
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值