猿问

将 Javascript 变量传递给 PHP

我正在开发一个登录系统,您可以在客户端散列密码,然后将其发送到服务器。我已经获取了密码并对其进行了哈希处理,现在我只需要将其插入数据库和/或比较登录。


    <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;


        }


喵喵时光机
浏览 152回答 3
3回答

Helenr

为简单起见,我在发送数据时总是使用 FormData 对象var fd = new FormData();&nbsp;fd.append("Name", [VALUE]);然后在 XmlHttpRequest 中发送该对象另外,我并没有真正做到安全,所以我不知道,但是散列应该在服务器端完成吗?

动漫人物

你可以:使用POST 或 GET请求以表单形式发送信息(将导致页面刷新)。使用AJAX&nbsp;/&nbsp;XMLHttpRequest(不刷新页面)。使用cookie。由于您正在尝试创建登录系统,因此我建议使用 POST 请求(因此它不会在 url 栏中显示提交的信息)和 PHP 会话来检查用户是否已登录(这是一个示例) .不仅如此,如果您想让您的用户登录信息保密,您不应该使用 javascript 进行身份验证,搜索有关如何以正确方式散列密码的教程,您会在 stackoverflow 和信息上找到很多相关材料安全。PHP 默认只支持bcrypt 和 argon,但它们仍然比 SHA256 好,因为SHA/HMAC 对计算机更快,因此破解速度更快。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答