客户端密码加密

我必须保护我的网站用户的密码。我所做的是在服务器端使用MD5 加密哈希。但问题是密码保留为纯文本,直到它到达服务器,这意味着可以使用流量监控捕获密码。所以我想要的是使用客户端密码加密/散列机制并发送加密/散列密码。任何人都可以告诉你这样做的方法是什么?



大话西游666
浏览 646回答 3
3回答

忽然笑

这不安全,解释原因很简单:如果您在客户端散列密码并使用该令牌而不是密码,则攻击者将不太可能找到密码。但是,攻击者并不需要找出密码是什么,因为您的服务器不期待任何密码更多-这是预期的令牌。并且攻击者确实知道令牌,因为它是通过未加密的HTTP发送的!现在,有可能将某种挑战/响应形式的加密混合在一起,这意味着相同的密码将在每个请求中产生不同的令牌。但是,这将要求密码以可解密的格式存储在服务器上,这是不理想的,但可能是一个合适的折衷方案。最后,你真的想要用户在登录你的网站之前打开javascript吗?在任何情况下,SSL都不再昂贵或者特别难以设置解决方案

九州编程

我会选择这个简单的解决方案。总结一下:客户“我要登录”服务器生成随机数#S并将其发送到客户端客户读取用户键入的用户名和密码计算密码的哈希值,获取h(pw)(这是存储在数据库中的内容)生成另一个随机数 #C连接h(pw) + #S + #C并计算其哈希值,调用它h(all)发送到服务器username,#C和h(all)服务器从DB 检索h(pw)'指定username的现在它有所有要计算的元素h(all'),就像客户那样if h(all)= h(all')then h(pw)= h(pw)',几乎可以肯定没有人可以重复以指定用户身份登录的请求。#S每次都向哈希添加一个变量组件(它是基础)。#C增加额外的噪音。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript