Javascript 如何在发送到php脚本之前加密密码?

Javascript 如何在发送到php脚本之前加密密码?,javascript,Javascript,我想将加密的密码发送到服务器端脚本,在数据库中匹配加密的密码后,如果密码匹配,则将用户重定向到主页 我的Jquery函数: jQuery('#login_form').submit(function(){ var form_data = new FormData(); form_data.append('login', $('#lg-user').val()); form_data.append('password', CryptoJS.MD5($('#lg-password').v

我想将加密的密码发送到服务器端脚本,在数据库中匹配加密的密码后,如果密码匹配,则将用户重定向到主页

我的Jquery函数:

jQuery('#login_form').submit(function(){
  var form_data = new FormData();
  form_data.append('login', $('#lg-user').val());
  form_data.append('password', CryptoJS.MD5($('#lg-password').val()));

  jQuery.ajax({
    type: "POST",
    url: "processa.php",
    data: dados,
    success: function( data )
    {
      alert( data );
    }
  });
  
  return false;
});
表格:

                    <form action="" id="login_form" method="post">
                        <?php  
                            session_start();
                            if (isset($_SESSION['message']))
                            {
                                echo $_SESSION['message'];
                                unset($_SESSION['message']);
                            }
                        ?>
                    <div class="input-group form-group">
                        <div class="input-group-prepend">
                            <span class="input-group-text"></span>
                        </div>
                        <input type="text" name="username" class="form-control" 
                        placeholder="usuario">      
                    </div>
                    <div class="input-group form-group">
                        <div class="input-group-prepend">
                            <span class="input-group-text"></span>
                        </div>
                        <input type="password" name="password" class="form-control" 
                        placeholder="senha">
                    </div>
                    <div class="col-md-12">
                        <div class="text-center">
                            <input type="submit" value="Entrar" class="btn login_btn">
                        </div>
                    </div>
                </form>


问题是每次我发送表单时,页面都会重新加载。

您的方法非常不安全

通过在客户端对其进行加密并将其发送的内容与数据库进行匹配,您将向服务器发送“证明”用户是他们所说的用户的数据,因此如果有人持有数据库,他们将知道要发送什么

此外,MD5目前还太弱,无法确保密码的安全


要确保密码在传输到服务器时的安全性,请使用HTTPS

要确保数据库中的密码安全,请按照PHP手册中的说明,在服务器端对密码进行散列


要在使用
submit
事件拦截并使用Ajax时停止常规表单提交,请执行以下操作:

  • 捕获事件对象
  • 对其调用
    preventDefault
  • 例如:


    控制台中有错误吗?“问题是每次我发送表单时,页面都会重新加载”-所以这与加密密码或PHP无关?如果您只是想阻止页面重新加载。。。不要用JS加密密码,改用https连接。如果页面是https,你不需要这个,但无论如何,MD5会发生冲突,所以我不会用它来验证用户。。。喜欢控制台不会显示ant错误,但我希望在我提交表单时,重定向到主页。我同意你的意见,如果有人能够控制数据库,那么现在开始实施安全措施已经有点晚了
    jQuery('#login_form').submit(function(e){
        e.preventDefault()