我非常想知道如何保护php密码的安全性。
主要问题是:我如何将密码作为安全字符串从登录表单中发布?
我一直在查看其他网站如何做到这一点,例如Facebook。当我登录Facebook时,我根本看不到我的密码发布,它只是一个长加密字符串。
我该如何在发布之前将密码字段转换为加密字符串?这是通过ajax完成的吗?
谢谢 Ke
我非常想知道如何保护php密码的安全性。
主要问题是:我如何将密码作为安全字符串从登录表单中发布?
我一直在查看其他网站如何做到这一点,例如Facebook。当我登录Facebook时,我根本看不到我的密码发布,它只是一个长加密字符串。
我该如何在发布之前将密码字段转换为加密字符串?这是通过ajax完成的吗?
谢谢 Ke
请查看HTTPS协议
超文本传输安全协议 (HTTPS)是将超文本传输协议和SSL/TLS协议结合使用,以提供服务器的加密和安全身份验证。 HTTPS连接通常用于万维网上的支付交易和企业信息系统中的敏感交易。 不应将 HTTPS 与在RFC 2660中指定的安全HTTP(S-HTTP)混淆。
如果您无法为站点启用HTTPS并且不想发布明文密码(出于明显的安全原因),请考虑使用挑战响应身份验证。
只需在谷歌搜索各种PHP / JavaScript实现,然后选择一个您喜欢的即可。
onSubmit:
PASSWORDFIELD.value = md5(PASSWORDFIELD.value)
您将在客户端上拥有一个MD5加密的密码,然后将其发送到您的服务器(无需使用AJAX)。 在服务器端,您将比较它与存储在数据库中的加密密码,以检查用户是否已获得授权。
根据Select0r的建议,我已经修改了代码,以确保在提交后不更改*的计数:
onSubmit='encrypt_pass(this)'
并且
function encrypt_pass(form){
form.pass_md5.value = md5(form.pass.value); //needs a hidden pass_md5 field
var stars = "";
for(i=0;i<form.pass.value.length;i++)
stars = stars+"*";
form.pass.value = stars;
}