美文网首页
如何安全的在服务端储存密码

如何安全的在服务端储存密码

作者: sarleon | 来源:发表于2016-10-04 18:54 被阅读0次

这几年来屡屡发生各大网站用户数据被脱裤的事件,而一些公司对于用户信息保护意识的缺失更加加剧了这些事件的影响,那么怎么做才能够保证用户数据的安全呢.

首先,服务器端常见的几种 不安全的密码储存方式如下

1 明文储存

用户注册后,直接把用户的密码存入数据库的一列中,登录的时候取出,与用户输入进行比较.

这种方式基本已经销声匿迹,用于没有什么安全要求的小网站,因为这种方式储存的数据一旦被人拿到数据库的权限,所有密码都会暴露,毫无安全性可言

2 加密存储

将用户注册时的密码加密后,存储在数据库中 ,这种方式相对与明文存储来说,已经较为安全,但是验证的时候需要对密码进行解密.而且,秘钥一旦暴露,整个数据库密码也有可能泄露

3 哈希存储

哈希是一种不可逆的运算,因此经过哈希的密码是不能恢复到明文的,但是仍存在很大的风险隐患.原因如下\

很多做黑产的人手中都有大量的"裤子",即用户信息数据库,而且通常有一些其他的方式来获取用户名和密码,比如中间人攻击和钓鱼.通过本数据库内横向的比对,可以由一个暴露的密码的哈希值导出所有相同的哈希值,得出一大批的密码明文.

而且,哈希函数的种类十分有限,常用的只有md5和几种sha,攻击者通过构建一张彩虹表(即计算出大量的常用密码的哈希值并存入一个数据库),来很快的找到一些哈希值的原值,从而破解密码.

那么,什么才是正确的方式呢?

正确的方法就是:

哈希加盐

盐就是加在密码后面的一段随机字符串,加上这段字符串之后再进行哈希这一段字符串使可以公开的,(作用与非对称加密中的公钥类似),但是必须足够复杂,而且对于每个用户来说不能够重复,以防范相同密码进行的撞库等攻击.
加盐后也使得彩虹表失效

相关文章

  • 如何安全的在服务端储存密码

    这几年来屡屡发生各大网站用户数据被脱裤的事件,而一些公司对于用户信息保护意识的缺失更加加剧了这些事件的影响,那么怎...

  • Web 中暗藏的密码学

    了解更多,添加308139472 开发网站登录功能时,如何保证密码在传输过程/储存的安全? 相信不少前后端的朋友,...

  • MySQL Server 结构 - 非官方 MySQL 8.0

    MySQL Server包含两个不同部分:服务端和储存引擎。查询优化发生在服务端,在储存引擎的 API 之上,分为...

  • 谈谈数据传输中的安全性

    昨天写了一篇用户密码存储的安全性后,有读者留言询问关于如何保障客户端和服务端数据传输的安全性,这个话题在过去几年正...

  • 关于SSH加密链接的一些知识

    密码的登录方式是通过输入账户和密码来获取服务端的加密信息,ssh密钥登录方式可以不用输入密码,就可以建立安全的链接...

  • 个人密码设置技巧

    如何让保障你的密码安全? 想要保障密码的安全,不被破解,我们就需要使用复杂密码来防止洗库。为了防止撞库,我们就要对...

  • 深入理解token

    摘要: Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回...

  • 深入了解Token

    摘要: Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回...

  • APP自动登录 – 深入了解Token认证的来龙去脉

    Token 是在服务端产生的,如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Tok...

  • iOS数据持久化方案简述

    Keychain 一般用于安全的存储用户ID密码证书等敏感信息,非通用数据持久化方案。 它不储存在app的沙盒内,...

网友评论

      本文标题:如何安全的在服务端储存密码

      本文链接:https://www.haomeiwen.com/subject/riodyttx.html