我目前正在构建一个web/桌面应用程序。用户可以在线创建帐户并在线或通过桌面客户端登录。客户端将使用Python构建并导出到exe。
我想在密码发送到网上之前对其进行加密,因为该网站没有https连接。
要做到这一点,最好的方法是什么,以便在python和php中哈希密码相同?或者他们是更好的方式,还是我应该投资https?
我尝试过使用简单的哈希,但phpmd5("Hello")
将返回与python的hashlib.md5("Hello").hexdigest()
不同的东西
忘记这个想法吧。在客户端上对密码进行散列,将散列发送到服务器,然后将其与存储的散列进行比较,这相当于在数据库中存储普通密码,因为散列将成为密码。
还是我应该投资https?
是的!
您能分享一个代码示例来重现这一点以及两种不同的输出吗?
他们应该并且确实创建了相同的输出。
您还应该使用HTTPS或使用质询-响应机制(以下是许多邮件服务器使用的示例:http://en.wikipedia.org/wiki/CRAM-MD5)
加密密码没有安全效果-任何人都可以拦截密码并重复使用。密码仍然是秘密的,但任何人仍然可以像知道一样登录。