0

我目前正在构建一个网络/桌面应用程序。用户可以在线创建帐户并在线或通过桌面客户端登录。客户端将在 Python 中构建并导出为 exe。

我想在在线发送密码之前对其进行加密,因为该站点没有 https 连接。

这样做的最佳方法是什么,以便散列密码在 python 和 php 中是相同的?或者他们是更好的方式还是我应该只投资https?

我尝试过使用简单的散列,但 phpmd5("Hello")会返回与 python 不同的东西hashlib.md5("Hello").hexdigest()

4

2 回答 2

9

忘记这个想法。在客户端对密码进行散列,将散列发送到服务器,然后将其与存储的散列进行比较,相当于将明文密码存储在数据库中,因为散列成为密码

还是我应该只投资https?

是的!

于 2013-02-10T16:33:35.693 回答
0

你能分享一个代码示例来重现这个,以及两个不同的输出吗?

他们应该并且确实创建了相同的输出。

您还应该使用 HTTPS 或使用质询响应机制(这是许多邮件服务器使用的示例:http ://en.wikipedia.org/wiki/CRAM-MD5 )

加密密码没有安全作用——任何人都可以截获密码并重新使用它。密码仍然保密,但任何人仍然可以登录,就好像他们知道密码一样。

于 2013-02-10T16:36:33.313 回答