2013-02-18 2 views
0

У меня возникла проблема с получением хэша паролей, работающим вместе с механизмом проверки jQuery. Проблема в том, что я не могу показать хэш-пароль.jQuery Проверка двигателя и хеширование с помощью Sha512

Это то, что у меня есть до сих пор.

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

При запуске сценария обработки после представления я могу найти и использовать не-хэшируются пароль, но это просто не достаточно хорошо для меня.

Что я делаю неправильно?

Редактировать: Я применил еще несколько javascript и дополнительную «проверку фона» путем выделения функции (formhash) и вставки в отдельный файл, добавленный 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> 
+1

Вы когда-нибудь выполняли 'formhash (.., ..)' где-нибудь? – cIph3r

+0

Я попытался вызвать его в заголовке формы с помощью onsubmit. Это привело к отправке формы, даже когда проверка не удалась. – Markus

+0

, но когда вы вычисляете хэш и стираете исходный пароль в этой функции, которую вы никогда не вызываете .. как вы ожидаете, что пароль исчезнет? – cIph3r

ответ

0

Это немного поздно, но у меня был тот же вопрос и не нашел ответа, поэтому я хотел бы поделиться, как я ее решил:

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

Я удаления form.submit(); из этого функцию и вызов функции с помощью onclick в кнопке отправки. Я изменил пароль и подтверждение на безопасное значение, просто сопоставив минимальную длину, разрешенную в валидации формы jquery. Таким образом, функция проверки не будет препятствовать отправке формы.

Смежные вопросы