2013-09-03 18 views
9

Aktualnie tworzę stronę changepassword. i to jest moja funkcja sprawdzania starego hasła jest zgodna z istniejącym hasłem, czy nie. I to hasło jest przechowywane w MD5 w bazie danych, więc chcę najpierw przekonwertować to hasło w MD5, a potem mogę sprawdzić to hasło. Oto kod.Jak przekonwertować hasło na md5 w jquery?

function fnIsValidOldPassword() 
{ 
var oldPassword = ""; 
var objUser = new Object(); 

objUser.UserID = <?php echo $_SESSION['UserId'] ?>; 
$.ajax({ 
    type: "POST", 
    url: "db.php?GetUser", 
    data: {data:objUser}, 
    async:false, 
    dataType:"json", 
    success: function(response) 
    { 
     if(response.IsError) 
      alert(response.ErrorMessage); 
     else 
      oldPassword = response.Records[0].Password; 
    }, 
    error:function(message) 
    { 
     alert("Error: " + message); 
    } 
}); 

if($.md5($("#txtOldPassword").val())) != oldPassword) 
     ^^ //here it shows error. that md5 is not a function. 
{ 
    $("#errorPassword")[0].innerHTML = "Wrong Old Password."; 
    $("#txtOldPassword").removeClass("successTextBox").addClass("errorTextBox"); 
    return false; 
} 

$("#txtOldPassword").removeClass("errorTextBox").addClass("successTextBox"); 
$("#errorPassword")[0].innerHTML = ""; 
return true; 
} 

md5 nie jest funkcją jquery, a następnie konwertuje hasło w md5.

+3

Można to wykorzystać: http://stackoverflow.com/questions/1655769/fastest-md5-implementation-in-javascript Ale uwaga: naprawdę powinieneś używać solonych haseł! – mvp

+0

musisz użyć biblioteki kryptograficznej, takiej jak [crypto-js] (https://code.google.com/p/crypto-js/#MD5) –

+0

ten link może pomóc http://www.myersdaily.org/joseph /javascript/md5-text.html. Również dlaczego nie używać po prostu md5 z php zamiast js. – Class

Odpowiedz

11

jQuery robi się sposób, aby zapewnić MD5 ciąg. Musisz więc użyć zewnętrznego skryptu. Istnieje wtyczka o nazwie jQuery MD5. i daje liczbę metod osiągnięcia md5. Niewielu z nich są

Tworzenie (hex kodowane) MD5 hash określonej wartości ciągu:

var md5 = $.md5('value'); 

Tworzenie (hex kodowane) HMAC-MD5 hash danego wartość ciągu i klucz:

var md5 = $.md5('value', 'key'); 

Tworzenie surowego hash MD5 danej wartości naciągu:

var md5 = $.md5('value', null, true); 

Tworzenie surowego HMAC-MD5 hash określonej wartości ciągu i klucz:

var md5 = $.md5('value', 'key', true); 

To może zrobić, co chcesz ... Sprawdź opis tutaj. jQuery MD5

+0

@Ayyapan: Czy istnieje sposób na odszyfrowanie zaszyfrowanego ciągu md5 z powrotem na oryginalny ciąg znaków? – SSS

+0

@SSS: Nie można uzyskać oryginalnego łańcucha z powrotem z łańcucha mieszanego md5! http://stackoverflow.com/questions/12287704/how-to-reverse-md5-to-get-original-string –

+0

Jak odszyfrować md5? – KingRider

4

Potrzebujesz do tego dodatkowej wtyczki.

przyjrzeć się tej plugin

+0

Ale jak odszyfrować te zaszyfrowane dane w jquery.? –

+0

Jest to algorytm mieszający. Hashe to jednokierunkowe algorytmy szyfrowania. Nie można ich odszyfrować. – Blueboye

1

Get wartość pola przez id i wysłać z ajax

var field = $("#field").val(); 
$.ajax({ 
    type: "POST", 
    url: "db.php", 
    data: {variable_name:field}, 
    async:false, 
    dataType:"json", 
    success: function(response) { 
     alert(response); 
    } 
}); 

W pliku Db.php uzyskać nazwę zmiennej

$variable_name = $_GET['variable_name']; 
mysql_query("SELECT password FROM table_name WHERE password='".md5($variable_name)."'"); 
8

Pobierz i to ten plugin

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/md5.js"> 

i użyj jak

if(CryptoJS.MD5($("#txtOldPassword").val())) != oldPassword) { 

} 

//Following lines shows md5 value 
//var hash = CryptoJS.MD5("Message"); 
//alert(hash); 
1
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/md5.js"></script> 
<script> 
    var passhash = CryptoJS.MD5(password).toString(); 

    $.post(
     'includes/login.php', 
     { user: username, pass: passhash }, 
     onLogin, 
     'json'); 
</script> 
0

Fiddle: http://jsfiddle.net/33HMj/

JS:

var md5 = function(value) { 
    return CryptoJS.MD5(value).toString(); 
} 

$("input").keyup(function() { 
    var value = $(this).val(), 
     hash = md5(value); 
    $(".test").html(hash); 
}); 
+0

Aktualizacja: http://jsfiddle.net/KingRider/33HMj/785/ – KingRider

+0

Użyj tego js http://lig-membres.imag.fr/donsez/cours/exemplescourstechnoweb/js_securehash/md5src.html –