Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery验证引擎和Sha512哈希_Jquery_Sha512_Jquery Validation Engine - Fatal编程技术网

jQuery验证引擎和Sha512哈希

jQuery验证引擎和Sha512哈希,jquery,sha512,jquery-validation-engine,Jquery,Sha512,Jquery Validation Engine,我在让密码哈希与jQuery验证引擎一起工作时遇到了一个问题。问题是我似乎无法对给定的密码进行哈希运算 这就是我目前所拥有的 <script> jQuery(document).ready( function() { jQuery("#form").validationEngine('attach', {onValidationComplete: function(form, status){ if (status == true)

我在让密码哈希与jQuery验证引擎一起工作时遇到了一个问题。问题是我似乎无法对给定的密码进行哈希运算

这就是我目前所拥有的

    <script>
    jQuery(document).ready( function() {
    jQuery("#form").validationEngine('attach', 
    {onValidationComplete: function(form, status){
        if (status == true) {
             $("form#form").bind('submit', function(e) {
                  e.preventDefault();
             });

             function formhash(form, password) {
               var p = document.createElement("input");
               form.appendChild(p);
               p.name = "p";
               p.type = "hidden";
               p.value = hex_sha512(password.value);
               password.value = "";
               form.submit();
              }
         }
     }  
    })
    };
    </script>

jQuery(文档).ready(函数(){
jQuery(“#表单”).validationEngine('attach',
{onValidationComplete:函数(表单、状态){
如果(状态==真){
$(“form#form”).bind('submit',函数(e){
e、 预防默认值();
});
函数formhash(表单、密码){
var p=document.createElement(“输入”);
表3.儿童(p);
p、 name=“p”;
p、 type=“隐藏”;
p、 value=hex_sha512(password.value);
password.value=“”;
表单提交();
}
}
}  
})
};
通过在提交后运行处理脚本,我可以找到并使用未哈希的密码,但这对我来说还不够好

我做错了什么

编辑: 我通过隔离函数(formhash)应用了更多的javascript和一个额外的“后台验证”,并将其放入一个单独的文件中,在表单头中添加onsubmit=“return validate(this);”。虽然没有那么漂亮,但它似乎做到了这一点

不过,任何关于改进的建议都是受欢迎的

    <script type="text/javascript"> 
    function validate(form) {
    var reason = "";

    reason += validatePassword(form.password);

    if (reason != "") {
    return false;
    }
    formhash(form, form.password)
    return true;
    }

    function validatePassword(fld) {
    var error = "";

    if (fld.value == "") {
       error = "";
    }
    return error;
    }
    </script>

函数验证(表单){
var理性=”;
原因+=validatePassword(form.password);
如果(原因!=“”){
返回false;
}
formhash(表单,表单.密码)
返回true;
}
功能验证密码(fld){
var误差=”;
如果(fld.value==“”){
错误=”;
}
返回误差;
}

有点晚了,但我有同样的问题,没有找到答案,所以我想与大家分享我解决问题的方法:

function reghash(form, password, confirmation) {
 var p = document.createElement("input");
 form.appendChild(p);
 p.name = "p";
 p.type = "hidden";
 p.value = hex_sha512(password.value);
 password.value = "123456";
 confirmation.value = "123456"; }

我正在删除
表单。提交()
从该函数调用函数,并使用提交按钮中的
onclick
调用该函数。我通过简单地匹配jquery表单验证中允许的最小长度,将密码和确认更改为安全值。这样,验证函数就不会阻止提交表单。

您是否执行过
formhash(…,…)
某个地方?我试图在表单头中使用onsubmit调用它。这导致表单即使在验证失败时也会提交。但是当您计算哈希并删除此函数中的原始密码时,您从未调用过。您希望密码如何消失?老实说,我对JavaScript和jQuery都不太熟悉。我虽然我不确定我是否理解你的问题,但如果我没有弄错的话,我认为它会获取密码,对其进行散列,然后发送散列数据,以避免在交易过程中发生任何抢夺。当再次使用它时,重新对其进行散列,以便能够将其与存储的密码进行比较。使用javascript对表单验证的改进HTML5中的ld be表单验证