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