我正在尝试将用户名和密码数据从 Web 表单发送到我的服务器。
密码通过 https 连接以纯文本形式发送,然后hashlib.sha224
在存储之前在服务器上正确加密(使用 python ),但是我不确定如何以加密格式将密码文本传输到服务器。
我的 web 客户端是用 javascript 编写的,而服务器是用 python 编写的。
我正在尝试将用户名和密码数据从 Web 表单发送到我的服务器。
密码通过 https 连接以纯文本形式发送,然后hashlib.sha224
在存储之前在服务器上正确加密(使用 python ),但是我不确定如何以加密格式将密码文本传输到服务器。
我的 web 客户端是用 javascript 编写的,而服务器是用 python 编写的。
您必须在 JavaScript 中对其进行加密。不幸的是,JavaScript 不提供任何开箱即用的加密工具,因此您必须使用第三方库或自己编写一些东西。
正如其他人所说,HTTPS 旨在加密整个流量,所以也许您不需要任何额外的东西?但是,如果您这样做,您可能想查看这篇文章,它可能会阐明这个问题。祝你好运 !:)
实际上您传输的密码是加密的,因为您使用 SSL。此外,您不加密密码,而是在服务器上散列密码。
无论如何,您可以使用jCryption之类的东西。crypt-js也可以满足您的目的。
对于 python,有一个名为PyCrypto的加密库。但是我对 Javascript 和 Python 之间的通信有疑问。我尝试做类似的事情,但有问题。我想我的问题会对你的问题有所帮助。
在 PyCrypto AES MODE_CTR 中包含 nonce 和块计数
但总的来说,您已经通过使用 https 自行解决了问题。
https
是一种加密格式。你很厉害。
如果你想在客户端做,我建议用sha1
. 这家伙似乎有一些库:http: //pajhome.org.uk/crypt/md5/ - SHA1、sha256、md5 等。
将密码发送到服务器的 HTTPS 通道提供了足够好的加密。
但是,您需要更安全的密码存储机制。使用具有数千次哈希迭代的“bcrypt”之类的算法(bcrypt 将此称为成本因子,它应该至少为 16,意味着 2 16次迭代)和随机的“盐”。这是通过从密码中获取加密密钥来实现的,这是一个计算成本很高的过程,然后使用该密钥来加密一些已知的密文,将其保存起来以供将来登录尝试进行比较。
此外,仅在登录时使用 HTTPS 是不够的。您应该将它用于任何需要经过身份验证的用户或带有身份验证 cookie 的请求。