盐(Salt),在密码学中,是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串。这个在散列中加入字符串的方式称为“加盐”。其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。

在大部分情况,盐是不需要保密的。盐可以是随机产生的字符串,其插入的位置可以也是随意而定。如果这个散列结果在将来需要进行验证(例如:验证用户输入的密码),则需要将已使用的盐记录下来。

实现原理

加盐的实现过程通常是在需要散列的字段的特定位置增加特定的字符,打乱原始的字符串,使其生成的散列结果产生变化。比如,用户使用了一个密码:

x7faqgjw

经过SHA散列后,可以得出结果:

58ecbf2b3136ceda7fddfd986ba8bd8d59b2d73779691e839f3f176ce2c04b84

但是由于用户密码位数不足,短密码的散列结果很容易被彩虹表破解,因此,在用户的密码末尾添加特定字符串(下划线字体为加盐的字段):

x7faqgjwabcdefghijklmnopqrstuvwxyz

因此,加盐后的密码位数更长了,散列的结果也发生了变化:

7b5001a5a8bcdcfa1b64d41f6339cfa7a5c0eca04cca6ff6a6c1d6aad17794cc

以上就是加盐过程的简单描述,在实际使用过程中,还需要通过特定位数插入、倒序或多种方法对原始密码进行固定的加盐处理,使得散列的结果更加不容易被破解或轻易得到原始密码,比如(下划线字体为加盐字符串):

x7afabqgcjw

盐(salt value)密码学相关推荐

  1. C++实现MD5摘要算法加盐salt值

    C++实现MD5摘要算法加盐salt值 1.信息摘要函数 1.1Hash函数 哈希函数就是能将任意长度的数据映射为固定长度的数据的函数.哈希函数返回的值被叫做哈希值.哈希码.散列,或者直接叫做哈希. ...

  2. 密码加盐(salt)

    密码加盐主要是针对用户的登录密码而言的,原始密码经过MD5(一种Hash算法)加密后,一些固定长度的简单纯文本密码的密文也会被破解出来.因为同一串字符的Hash加密后的密文是固定不变的.所以还是会被破 ...

  3. shiro 散列加盐(salt) 次数的效果

    2019独角兽企业重金招聘Python工程师标准>>> SimpleHash hash = new SimpleHash("MD5", "123123& ...

  4. 加解密篇 - 什么是加密加盐 (分析web3j的加盐处理)

    这篇是加解密的最后一篇,来聊聊加密加盐.翻看最近的区块链钱包项目,发现 web3j 的源码中对数据做了加盐处理,正好分析一下它是如何进行加盐处理的. 目录: 什么是加盐 加盐的原理和流程 加盐 dem ...

  5. mybatis接口中的方法重载_MyBatis的Mapper接口以及Example的实例函数及详解

    一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 int countByExample(UserExample example) thorws SQLException ...

  6. salt加盐MD5加密代码

    普通的md5因为其代表的密码是一致的,这里说的比较抽象,看下面举的例子 例如一串密码wer123456,加密后可能会是b6a6c36f9d25aa74(瞎写的) 其中w,e,r,1,2,3,4,5,6 ...

  7. [转]加盐hash保存密码的正确方式

    本文转自:http://drops.wooyun.org/papers/1066 0x00 背景 大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一 ...

  8. 区块链快速入门(六)——区块链密码学与安全相关技术

    一.区块链密码安全技术简介 区块链和分布式账本中大量使用了密码学和安全技术的最新成果,特别是身份认证和隐私保护相关技术.区块链使用了包括Hash 算法与摘要.加密算法.数字签名和证书.PKI体系.Me ...

  9. 现代密码学期末复习总结(个人整理自存)

    写在前面: 以下材料均为个人从互联网各处整理而成,不保证所含信息完全正确,考点基于个人学校答疑课和相关考试资料总结,不保证考点和您的实际考点相吻合. 仅供学习分享,如需转载还请私信告知. word版文 ...

  10. MIT 计算机操作环境导论Missing Semester Lesson 9 安全和密码学

    去年的这节课我们从计算机 用户 的角度探讨了增强隐私保护和安全的方法. 今年我们将关注比如散列函数.密钥生成函数.对称/非对称密码体系这些安全和密码学的概念是如何应用于前几节课所学到的工具(Git和S ...

最新文章

  1. 【转载】CSS 入门精要(一)
  2. SOA与微服务基本原则及对比
  3. C# Task 循环任务_C# Task.Run调用外部参数
  4. java中u怎么用_Java中interrupt的使用
  5. 绝地求生服务器维护内容,绝地求生最新更新维护几点开始? 绝地求生10.30更新维护内容...
  6. WordPress程序备受喜爱的原因:十八般武艺
  7. linux 自学系列:文件内容查找命令grep
  8. JavaScript 媒体查询库 enquire.js
  9. Bandit UCB推导
  10. 1.1 linux介绍
  11. 说下我自己对空号检测的理解跟心得
  12. GoldenGate Enterprise Manager Plug-In(12.1.0.3.0) 部署文档
  13. NOI 1797:金银岛(C++)
  14. 实验二、Activity界面基本实验
  15. Tomcat优化学习
  16. 《三国塔防》为什么成功?
  17. 每次都想呼喊你的名字
  18. SIBT SSHT 2023展位火爆抢定中 共燃建筑空间智慧浪潮
  19. 微信小程序控制onenet智能灯
  20. 郑州一小村成影视基地 全村人都是群众演员

热门文章

  1. 从社交网络图的edgelist得到adj
  2. 英语知识点整理day02
  3. 小学计算机无生试讲教案,小学英语无生试讲
  4. 华为P9移动定制版刷为联通移动双4G版本
  5. 机器学习系列(13)_PCA对图像数据集的降维_02
  6. java中int型的最大值_java int 的最大值 Integer.MAX_VALUE
  7. STM32F401超声波proteus仿真
  8. 如何精确理解leader布置的任务
  9. 异地电脑如何共享文件?
  10. 一寸照纯红色底图片_一寸照片背景色一般都是什么颜色范文