2013-09-03 50 views
9

Thực ra tôi đang tạo trang changepassword. và đây là chức năng kiểm tra mật khẩu cũ của tôi phù hợp với mật khẩu hiện tại hay không. Và mật khẩu đó được lưu trữ trong MD5 trong cơ sở dữ liệu vì vậy tôi muốn đầu tiên chuyển đổi mật khẩu đó trong MD5 và sau đó tôi có thể kiểm tra mật khẩu đó. Đây là mã.Làm thế nào để chuyển đổi mật khẩu thành md5 trong 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 không phải là chức năng trong jquery, sau đó cách chuyển đổi mật khẩu trong md5.

+3

Bạn có thể sử dụng này: http://stackoverflow.com/questions/1655769/fastest-md5-implementation-in-javascript Nhưng hãy cẩn thận: bạn thực sự nên sử dụng mật khẩu muối! – mvp

+0

bạn cần phải sử dụng thư viện mật mã như [crypto-js] (https://code.google.com/p/crypto-js/#MD5) –

+0

liên kết này có thể giúp http://www.myersdaily.org/joseph /javascript/md5-text.html. Ngoài ra tại sao không chỉ sử dụng md5 với php thay vì js. – Class

Trả lời

11

jQuery doesnt này có một phương pháp để cung cấp các md5 của một chuỗi. Vì vậy, bạn cần phải sử dụng một số kịch bản bên ngoài. Có một plugin có tên là jQuery MD5. và nó cung cấp cho bạn số phương pháp để đạt được md5. Vài trong số đó là những

Tạo (hex-mã hóa) MD5 hash của một giá trị chuỗi cho trước:

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

Tạo (hex-mã hóa) HMAC-MD5 hash của một giá trị chuỗi cho trước và chìa khóa:

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

Tạo băm MD5 liệu của một giá trị chuỗi cho trước:

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

Tạo liệu HMAC-MD5 hash của một giá trị chuỗi cho trước và khóa:

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

Điều này có thể làm những gì bạn muốn ... Kiểm tra đoạn mã tại đây. jQuery MD5

+0

@Ayyapan: Có cách nào để giải mã chuỗi được mã hóa md5 trở lại chuỗi gốc không? – SSS

+0

@SSS: Bạn không thể lấy lại chuỗi gốc từ chuỗi băm md5! http://stackoverflow.com/questions/12287704/how-to-reverse-md5-to-get-the-original-string –

+0

Làm cách nào để giải mã md5? – KingRider

4

Bạn cần plugin bổ sung cho việc này.

hãy nhìn vào plugin

+0

Nhưng làm cách nào để giải mã dữ liệu được mã hóa đó trong jquery.? –

+0

Đây là thuật toán băm. Phát ban là thuật toán mã hóa một chiều. Bạn không thể giải mã chúng. – Blueboye

1

Lấy giá trị trường thông qua các id và gửi với ajax

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

Tại tập tin db.php lấy tên biến

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

Tải về và bao gồm plugin này

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

và sử dụng như

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

Cập nhật: http://jsfiddle.net/KingRider/33HMj/785/ – KingRider

+0

Sử dụng js http://lig-membres.imag.fr/donsez/cours/exemplescourstechnoweb/js_securehash/md5src.html này –

Các vấn đề liên quan