我正在开发一个登录系统,您可以在客户端散列密码,然后将其发送到服务器。我已经获取了密码并对其进行了哈希处理,现在我只需要将其插入数据库和/或比较登录。 <form action="javascript:;" onsubmit="return changeFormLogin()"> <p>Email</p> <input id="username" type="email" name="username" placeholder="Enter Email" required> <p>Password</p> <input id="getPass" type="password" name="password" placeholder="••••••" required> <input type="submit" name="login" value="Sign In"> <p id="demo"></p> </form> <script src="https://cdnjs.cloudflare.com/ajax/libs/js-sha256/0.9.0/sha256.min.js" ></script> <script> function changeFormLogin() { var pass = document.getElementById('getPass').value; var username = document.getElementById('username').value; var getSalt = 123566; var hashpass = sha256(pass+pass); console.log(hashpass); var tmp = validateLogin(hashpass); if(tmp ==1){ //Welcome the user back, and load new form } else{ //Tell them to try again, notify them. } document.getElementById("demo").innerHTML = hashpass; //Used for testing return true; }
3 回答
![?](http://img1.sycdn.imooc.com/545850a00001fdd002200220-100-100.jpg)
Helenr
TA贡献1780条经验 获得超4个赞
为简单起见,我在发送数据时总是使用 FormData 对象
var fd = new FormData();
fd.append("Name", [VALUE]);
然后在 XmlHttpRequest 中发送该对象
另外,我并没有真正做到安全,所以我不知道,但是散列应该在服务器端完成吗?
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
动漫人物
TA贡献1815条经验 获得超10个赞
你可以:
使用POST 或 GET请求以表单形式发送信息(将导致页面刷新)。
使用AJAX / XMLHttpRequest(不刷新页面)。
使用cookie。
由于您正在尝试创建登录系统,因此我建议使用 POST 请求(因此它不会在 url 栏中显示提交的信息)和 PHP 会话来检查用户是否已登录(这是一个示例) .
不仅如此,如果您想让您的用户登录信息保密,您不应该使用 javascript 进行身份验证,搜索有关如何以正确方式散列密码的教程,您会在 stackoverflow 和信息上找到很多相关材料安全。
PHP 默认只支持bcrypt 和 argon,但它们仍然比 SHA256 好,因为SHA/HMAC 对计算机更快,因此破解速度更快。
添加回答
举报
0/150
提交
取消