使用 MD5 和 SQL 进行服务器授权
我目前有一个以 MD5 形式存储密码的 SQL 数据库。服务器需要生成唯一密钥,然后发送给客户端。在客户端中,它将使用密钥作为盐,然后与密码一起散列并发回服务器。
唯一的问题是 SQL DB 已经具有 MD5 格式的密码。因此,要实现此功能,我必须对客户端密码进行 MD5,然后使用盐再次对其进行 MD5。我做错了吗,因为这似乎不是一个正确的解决方案。任何信息表示赞赏。
I currently have a SQL database of passwords stored in MD5. The server needs to generate a unique key, then sends to the client. In the client, it will use the key as a salt then hash together with the password and send back to the server.
The only problem is that the the SQL DB has the passwords in MD5 already. Therefore for this to work, I would have to MD5 the password client side, then MD5 it again with the salt. Am I doing this wrong, because it doesn't seem like a proper solution. Any information is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该使用 SSL 加密连接,然后从客户端通过纯文本发送密码。然后服务器会md5并与数据库中的md5哈希进行比较,看看它们是否相同。如果是这样
auth = success
。对客户端上的密码进行 MD5 处理不会给您带来任何好处,因为拥有 md5 密码的黑客可以像纯文本密码一样轻松地进入。
You should use SSL to encrypt the connection, then send the password over plain text from the client. The server will then md5 and compare with the md5 hash in the database to see if they are the same. If so
auth = success
.MD5'ing the password on the client buys you nothing because a hacker with the md5 password can get in just as easy as if it was in plain text.
我并不完全清楚你在问什么,但是 python hashlib(阅读常见问题解答)和 wikipedia 应该可以让您到达您要去的地方。
对于 python 中的真实示例,请检查 django 身份验证 (来源)。
It is not completely clear to me what are you asking, but python hashlib (read the FAQ) and wikipedia should get you to where ever you are going.
For real world example in python check django authentication (the source).