Làm thế nào để giải mã mật khẩu MD5 trong PHP?

Một trong những phần quan trọng nhất của trang web là hệ thống xác thực và việc các nhà phát triển phạm lỗi để lại lỗ hổng cho người khác khai thác là điều thường thấy. Vì PHP là ngôn ngữ kịch bản phía máy chủ nên nó chịu trách nhiệm về tất cả các chức năng back-end mà trang web yêu cầu. Trong bài viết này, chúng ta sẽ tìm hiểu cách giải mã mật khẩu md5 trong PHP theo trình tự sau:

Hãy bắt đầu nào.

Tại sao chúng ta cần MD5 trong PHP? 

Một ví dụ cơ bản có thể là lưu trữ và sử dụng mật khẩu người dùng ở dạng thực của nó, trong tình huống này, một người không được phép có thể truy cập vào cơ sở dữ liệu và toàn bộ hệ thống bị xâm phạm. Để ngăn chặn tình trạng này, mật khẩu băm được sử dụng. Mật khẩu băm có thể được định nghĩa là một phương pháp lấy mật khẩu hoặc chuỗi của người dùng và mã hóa nó thành một mật khẩu có độ dài cố định, PHP có một vài hàm để đạt được điều tương tự như md5 (), sha1 (), hash (). 

Băm MD5 là gì?

Thuật toán băm MD5 tạo ra một chuỗi 32 ký tự (hệ thập lục phân) cho bất kỳ từ hoặc cụm từ nào mà chúng tôi đưa ra trong đầu vào. Chúng tôi thậm chí có thể mã hóa toàn bộ tệp thành một băm MD5. Thuật toán cũng có thể được sử dụng cho các ứng dụng chữ ký số, trong đó một tệp lớn được nén theo cách an toàn và sau đó được mã hóa với sự trợ giúp của khóa riêng.

Làm thế nào để sử dụng MD5 trong PHP?

Để tính toán băm MD5 của một chuỗi PHP có một hàm được xác định trước md5 (). Hàm md5 () tính toán băm MD5 của một đầu vào chuỗi và trả về số thập lục phân của băm. Hàm md5 () sử dụng Thuật toán thông báo-thông báo MD5.

Cú pháp:

1md5(string,raw)
Tham sốSự miêu tả
chuỗiBắt buộc. Đây là chuỗi đầu vào cần được tính toán
thôKhông bắt buộc. Chỉ định định dạng đầu ra nhị phân hoặc hex:Nếu nó được đặt thành TRUE – Định dạng nhị phân 16 ký tự thôNếu nó được đặt thành FALSE – Mặc định. Số hex 32 ký tự

Loại trả lại: 

md5 () trả về hàm băm dưới dạng số thập lục phân 32 ký tự.

Làm thế nào để giải mã mật khẩu MD5 trong PHP?

Thuật toán mật mã MD5 không thể đảo ngược nghĩa là Chúng tôi không thể giải mã một giá trị băm do MD5 tạo ra để đưa đầu vào trở về giá trị ban đầu. Vì vậy, không có cách nào để giải mã mật khẩu MD5. Tuy nhiên, chúng ta có thể sử dụng một cái gì đó như hack bạo lực, cực kỳ tiêu tốn tài nguyên , không thực tế và phi đạo đức. Do đó, nếu ai đó đang nhập đúng mật khẩu, chúng ta cần tìm giá trị băm của bất kỳ thứ gì người dùng đã nhập và xem liệu nó có khớp với những gì chúng ta có trong cơ sở dữ liệu của mình hay không, do đó đây là công việc tốn nhiều thời gian và tài nguyên để thực hiện.

Có thể đoán mật khẩu ban đầu là gì bằng cách tìm trong từ điển MD5 băm của nhiều từ đã biết, những từ điển này có thể hữu ích để cho người dùng biết rằng mật khẩu mà họ đã chọn có thể dễ dàng bị phát hiện, do đó chúng tôi có thể yêu cầu người dùng xây dựng một mật khẩu mạnh hơn.

Ví dụ để giải mã mật khẩu MD5

Ví dụ 1:

123456<?php  $string = " PHP with Edureka"echo "Your string is:".$stringecho "<br>"echo "Hex formed by md5 function is ".md5($string);  ?> 

Đầu ra:

Trong ví dụ trên, chúng tôi in giá trị băm của “PHP với Edureka” được tạo bởi hàm md5 ().

Ví dụ 2:

1234567số 89<?php  $string = ' PHP with Edureka'if (md5($string) =='9a1359e7be2d2670780b85471675dc72'){  echo "PHP with Edureka is Fun"else {echo"look for the error";}?>

Đầu ra:

Đầu ra - Cách giải mã mật khẩu md5 - Edureka

Trong ví dụ trên, chúng ta kiểm tra xem giá trị băm của biến $ string có bằng 9a1359e7be2d2670780b85471675dc72 hay không, chương trình sẽ in ra “PHP with Edureka is Fun” nếu không nó sẽ in ra “tìm lỗi”

Ví dụ 3

123456<?php   $string = " PHP with Edureka";   echo "Your string is: ".$string."<br>";   echo "Setting raw input to TRUE getting 16 character binary: ".md5($string, TRUE)."<br>";   echo "default raw input set to FALSE giving 32 charater hex number: ".md5($string)."<br>";   ?> 

Đầu ra:

Đầu ra - Cách giải mã mật khẩu md5 - Edureka

Trong ví dụ trên, chúng ta xem xét ứng dụng của tham số raw trong hàm md5 (). Nếu chúng ta đặt nó thành TRUE, nó cho đầu ra nhị phân 16 ký tự, nếu không nó chỉ cho 32 ký tự là số hex.

Ví dụ 4:

1234567số 891011121314151617181920212223<?php   $password= "pass123";    if (isset($_POST['password']) && !empty($_POST['password'])){$new_password=$_POST['password']; if(md5($new_password)==md5($password)){echo "<br> Correct password ";}else{echo "<br> Incorrect password ";}} ?>   <form action="md5.php" method="post"><input type="text" name="password"><br><input type="submit" ></form>

Đầu ra:

Đoạn mã trên cung cấp đầu ra của một biểu mẫu HTML với một khối văn bản và một nút gửi nếu chúng ta nhập đúng mật khẩu, nó sẽ in “Mật khẩu chính xác”, nếu không nó sẽ in “Mật khẩu không chính xác”.

Đầu ra - Cách giải mã mật khẩu md5 - Edureka

Khi chúng tôi nhập sai mật khẩu, ví dụ ở đây, nó sẽ kiểm tra băm của đầu vào “pass” với băm của “pass123”, mật khẩu chính xác nếu nó không khớp, nó sẽ đưa ra kết quả như sau

Đầu ra - Cách giải mã mật khẩu md5 - Edureka

Nó in ra “Mật khẩu không chính xác”

Đầu ra - Cách giải mã mật khẩu md5 - Edureka

Nếu chúng ta nhập đúng mật khẩu (tức là “pass123”) thì băm của đầu vào khớp với băm của mật khẩu chính xác và nó cho kết quả sau

Đầu ra - Cách giải mã mật khẩu md5 - Edureka

Nó in ra “Mật khẩu chính xác”

Đầu ra - Cách giải mã mật khẩu md5 - Edureka

Bây giờ với điều này, chúng ta đã đến phần cuối của Hướng dẫn PHP. Tôi hy vọng các bạn thích bài viết này và hiểu các khái niệm về giải mã. Vì vậy, với phần cuối của Hướng dẫn PHP này, bạn không còn là một người mới làm quen với ngôn ngữ script nữa.

Nếu bạn thấy blog Hướng dẫn PHP này có liên quan, hãy xem  Khóa đào tạo chứng chỉ PHP  của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trên toàn cầu.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của ” Làm thế nào để giải mã mật khẩu md5 trong PHP? ”Và tôi sẽ liên lạc lại với bạn.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *