我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码。
 
  加Salt可以一定程度上解决这一问题。所谓加Salt方法,就是加点“佐料”。其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列。而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后散列,再比较散列值,已确定密码是否正确。
 
  这里的“佐料”被称作“Salt值”,这个值是由系统随机生成的,并且只有系统知道。这样,即便两个用户使用了同一个密码,由于系统为它们生成的salt值不同,他们的散列值也是不同的。即便黑客可以通过自己的密码和自己生成的散列值来找具有特定密码的用户,但这个几率太小了(密码和salt值都得和黑客使用的一样才行)。

原文:http://www.2cto.com/article/201201/117051.html

最新文章

  1. MyBatis Cache配置
  2. Python之路----------基础 一(数据类型、变量、基本语法、流程控制)
  3. c#之Insert字符串的三种写法
  4. .netWeb方向:语言+技术
  5. ListView具有多种item布局——实现微信对话列
  6. F1
  7. JavaScript 函数参数是传值(byVal)还是传址(byRef)?
  8. Minimum Size Subarray Sum —— LeetCode
  9. Android移植busybox
  10. Windows查看电脑上安装的.Net Framework版本的五种方法(转)
  11. html5 绘制集合图形
  12. 【java设计模式】之 模板方法(Template Method)模式
  13. 201521123004《Java程序设计》第8周学习总结
  14. ElasticSearch6.5.0 【Java客户端之REST Client】
  15. luogu P1776 宝物筛选_NOI导刊2010提高(02)
  16. [No0000F5]C# 类(Class)
  17. byte[]->new String(byte[]) -> getByte()引发的不一致问题
  18. MySQL 8.0.2: Introducing Window Functions
  19. 在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建
  20. jquery append、prepend、before等等

热门文章

  1. 02023_Arrays类的方法练习
  2. Java基础学习总结(63)——Java集合总结
  3. C#中的DES加密
  4. 洛谷—— P1120 小木棍 [数据加强版]
  5. 支付宝接口程序、文档及解读(ASP.NET)
  6. rails Installer之后的调整rails.bat等文件
  7. LeetCode——Valid Parentheses
  8. HDU - 4054 Hexadecimal View (2011 Asia Dalian Regional Contest)
  9. hdu2767 Proving Equivalences,有向图强联通,Kosaraju算法
  10. c#自己实现线程池功能(二)