[ZT]互联网网站应该如何存储密码?

news/2024/5/8 12:00:32/文章来源:https://blog.csdn.net/weixin_33911824/article/details/94606469

原文载于知乎。http://www.zhihu.com/question/20479856

 

13

韩竹,云存储服务坚果云的联合创始人。

13 票,来自 王峰、廖小树、任军 更多
刚好坚果云博客写了一篇这样的文章【1】, 讲述如何存储密码才安全。完整内容可以查看【1】原文。

简单而言,存储bcrypt, scrypt等算法输出的内容,不要用salted hash的方式存储密码,不要用加密的方式存储密码,当然,更不要明文存储。

顺带说一句,任何情况下尽可能的不要使用md5算法,而使用SHA系列的哈希算法。因为md5算法在很多地方被证明是很容易冲突的【2】,另外md5的性能优势也完全可以忽略不计。

为什么不能加密存储?
加密存储的方式其实和明文存储没有区别。密码加密后一定能被解密获得原始密码,因此,该网站一旦数据库泄露,所有用户的密码本身就大白于天下。另外,管理员也存在获取原始密码,利用同样的帐号登陆其他互联网服务的可能。

为什么不能用Hash存储? 
单向Hash算法(MD5, SHA1, SHA256等)可以保证管理员几乎不能恢复原始密码。但它有两个特点:
1)从同一个密码进行单向哈希,得到的总是唯一确定的摘要
2)计算速度快。随着技术进步,尤其是显卡在高性能计算中的普及,一秒钟能够完成数十亿次单向哈希计算

结合上面两个特点,考虑到多数人所使用的密码为常见的组合,攻击者可以将所有密码的常见组合进行单向哈希,得到一个摘要组合, 然后与数据库中的摘要进行比对即可获得对应的密码。这个摘要组合也被称为rainbow table【3】。
更糟糕的是,一个攻击者只要建立上述的rainbow table,可以匹配所有的密码数据库。

为什么不能用Salt + Hash的方式存储?
将明文密码混入“随机因素“,然后进行单向哈希后存储,也就是所谓的”Salted Hash”。 
这个方式相比上面的方案,最大的好处是针对每一个数据库中的密码,都需要建立一个完整的rainbow table进行匹配。 因为两个同样使用“passwordhunter”作为密码的账户,在数据库中存储的摘要完全不同。
10多年以前,因为计算和内存大小的限制,这个方案还是足够安全的,因为攻击者没有足够的资源建立这么多的rainbow table。 但是,在今日,因为显卡的恐怖的并行计算能力,这种攻击已经完全可行。

为什么bcrypt, scrypt等算法能保证密码存储的安全性?
这类算法有一个特点,算法中都有个因子,用于指明计算密码摘要所需要的资源和时间,也就是计算强度。计算强度越大,攻击者建立rainbow table越困难,以至于不可继续。

也就是说,故意延长一个密码匹配的计算时间,如果一个密码匹配需要1秒钟,那么匹配1000万个密码组合就需要115天,这个开销就非常大。

另外,这类算法也可以保证即使计算能力不断提高,只要调整算法中的强度因子,密码仍然不可能被轻易的攻破,同时不影响已有用户的登陆。关于这些算法的具体优劣,请参考【1】

【1】 blog.jianguoyun.com/...
【2】marc-stevens.nl/research...
【3】en.wikipedia.org/wiki...

转载于:https://www.cnblogs.com/zhangjiang/archive/2012/09/17/2688252.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_715582.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已知漏洞隐患:数十万网站仍在使用老旧的 JavaScript 库

美国东北大学研究人员在对超过 13.3 万个网站进行分析后发现,竟然有超过 37% 的站点仍在使用至少包含一个已知公开漏洞的 JavaScript 库。研究人员早在 2014 年就意识到了这点 —— 加载过时的 JavaScript 库,存在被黑客利用的潜在安全隐患(比…

商业网站——泷泽地产网站

企业名称:广州泷泽地产中介代理有限公司 制作时间:2005年6月

服务器代码网站安装,Web Deploy 服务器安装设置与使用(示例代码)

一、服务器的安装设置1、在windows server上确保IIS安装了【管理服务】这个功能。方法是在【服务器管理器】>【管理】>【添加角色和功能】>【下一步】>【基于角色或基于功能的安装】>【下一步】>【从服务器池中选择服务器】>【下一步】>【Web服务器(II…

php跨域请求别的网站_php能不能跨域访问其他网页

PHP不能直接跨域访问,如果需要跨域访问其他网页需要在PHP中设置允许跨域访问。加上需要允许跨域访问,配置如下(一下配置内容前不允许有其他任何输出操作)://设置允许跨域的 请求源地址//方式一:header("Access-Control-Allow…

盲并遗忘着-利用应用交付透析大型网站日志

回忆 像一直开着的机器 趁我不注意慢慢地清晰反覆播映-- 《三万英尺》迪克牛仔 当航班在三万英尺的高空爬升下坠,穿越乱流,沉入海底,无人知道它在云中究竟经历了什么波折苦难,甚至无人知道它最终沉睡于何处,随着时间的…

[置顶] 第一个ASP.NET网站——从静态到动态

【操作步骤】 一、创建简单的静态网页 1、在D盘新建文件夹aaa; 2、在文件夹aaa中新建文本档&#xff0c;输入如下内容&#xff1a; <html> <head> <title>简单的静态网站</title> </head> <body> 你好&#xff0c;今天是2013年4月28日。 &…

您应该了解的 Windows Azure 网站在线工具

&#xfeff;&#xfeff;编辑人员注释&#xff1a;本文章由Windows Azure 网站团队的软件开发者 Amit Apple 撰写。 如果想要了解并亲身参与计算资源管理&#xff0c;那么您一定会很高兴得知这一消息&#xff1a;Windows Azure 网站现在提供一些非常有用的在线工具&#xff0c…

记几个IOS工具网站

2019独角兽企业重金招聘Python工程师标准>>> http://www.scoop.it/t/ios-dev ios 工具推荐网站 http://blog.devtang.com/blog/2012/12/02/use-cocoapod-to-manage-ios-lib-dependency/ ios包依赖管理 http://sparkinspector.com/ IOS动态运行时分析 http://…

7款拥有超酷设计灵感的动态网站设计

来源&#xff1a;GBin1.com 在设计领域&#xff0c;每年都有不同的设计趋势和潮流&#xff0c;比如近几年的响应式设计&#xff0c;还有扁平化设计&#xff0c;都无时无刻不冲击和影响着我们设计的角度和方向。在今天这篇文章中&#xff0c;我们精选了一些超棒的创意网站设计&a…

网站验证码突然无法显示

为什么80%的码农都做不了架构师&#xff1f;>>> 网站验证码突然无法显示&#xff0c;并报如下错误。 Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment Caused by: java.lang.InternalError: Cant connect …

ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来

一个挺有意思的项目&#xff0c;跟拼图一样的创建网站&#xff0c;先来几张GIF感受一下&#xff1a;官方地址&#xff1a;http://www.zkea.net/zkeacms下载地址&#xff1a;https://github.com/SeriaWei/ASP.NET-MVC-CMS/releasesGitHub:https://github.com/SeriaWei/ASP.NET-M…

让全球2/3网站“心脏滴血”后,OpenSSL 经历了什么

如果把 OpenSSL 的 Heartbleed &#xff08;心脏滴血&#xff09;漏洞称为互联网安全历史上最严重的漏洞之一&#xff0c;想必不会有太多人反对。 SSL&#xff08;安全套接层&#xff09;协议是使用最为普遍的网站加密技术&#xff0c;而 OpenSSL 则是开源的 SSL 套件&#xff…

网站被用户喜爱的秘密 :挖掘关键词背后的用户需求

今天分享的主题是深挖关键词背后的用户需求&#xff0c;从而达到你的网站被越来越多的用户所认可&#xff0c;喜欢。而不是自娱自乐。 一般认为关键词的挖掘就是简单的使用5118等工具查询一下&#xff0c;整理出来一批关键词即可。然而正确的过程并非这样简单&#xff0c;我们不…

Windows Azure 网站上的 WebSocket 简介

编辑人员注释&#xff1a;本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写。 Windows Azure 网站最近新增了对 WebSocket 协议的支持。.NET 开发人员和 node.js 开发人员现在可在其应用程序中启用 WebSocket 并加以利用。 网站的 Configuration 选项卡上有…

树状结构搜索功能_如何让网站被搜索引擎索引收录(2)

想要让网站被搜索引擎索引收录&#xff0c;那就要建立一个易于被搜索引擎识别、索引&#xff0c;并且能够呈现在移动端的网站。下面&#xff0c;我们就从域名、服务器、网页加载速度、网站结构、url结构、PC端和移动端的适配、网站收录、网页过滤与数据库建设等八个方面进行讲解…

在网站开发中很有用的8个 jQuery 效果【附源码】

jQuery 作为最优秀 JavaScript 库之一&#xff0c;改变了很多人编写 JavaScript 的方式。它简化了 HTML 文档遍历&#xff0c;事件处理&#xff0c;动画和 Ajax 交互&#xff0c;而且有成千上万的成熟 jQuery 插件可供使用。看看下面这些惊人的功能和效果&#xff0c;我相信你会…

网站开放平台发布-开创应用个人创业

为什么80%的码农都做不了架构师&#xff1f;>>> 创新与发明不一样&#xff0c;创新也许是在模仿上面的一个升级。我打造的医药吧开放平台就是 想开发更多的创新应用&#xff0c;这里也想分享一下开放医药吧网API接口的目的。 医药吧网站的API接口的开放是一个模块…

英语学习网站

栏目位置&#xff1a;首页> 英语学习频道> VOA Special English 听歌说词(Catch The Words)你喜欢音乐吗&#xff1f;你想听懂英语排行榜金曲的歌词并跟着唱吗&#xff1f;那就和我们的主持人一起来听歌说词。这套节目节选了24首60到90年代的英美排行榜上榜金曲&#xff…

利用IIS日志追查网站入侵者

以前黑站黑了很多&#xff0c;但是就没有想过会不会被追踪到&#xff0c;都没有想过怎么去擦自己的屁股&#xff0c;万万没想到在自己不再黑站的时候&#xff0c;却发现了自己的BBS被黑了。根据当初的判断&#xff0c;BBS程序是我们BCT小组成员编写的Lvbbs不会存在着上传漏洞和…

网站首页图片动态更换显示【Javascript】

以前写过一篇网站首页图片动态更换显示【Flash】 &#xff0c;主要是介绍了一下网站首页常见的图片新闻更换程序。今天上网发现一个用Javascript脚本写的&#xff0c;效果也很是不错&#xff0c;来看一下&#xff1a;跟Flash版的几乎一样&#xff0c;看一下代码吧&#xff0c;主…