Php mã hóa và giải mã mật khẩu

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 mắc lỗi để lại lỗ hổng cho người khác khai thác là điều bình thường. Vì PHP là ngôn ngữ kịch bản phía máy chủ nên nó chịu trách nhiệm cho tất cả các chức năng phụ trợ 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ật, trong tình huống này, một người không được ủy quyền 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. Băm mật khẩu có thể được định nghĩa là một phương thức lấy mật khẩu hoặc chuỗi người dùng và mã hóa nó thành mật khẩu có độ dài cố định, PHP có một số chức năng để đạ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ự (thập lục phân) cho bất kỳ từ hoặc cụm từ nào chúng tôi cung cấp trong đầu vào. Chúng tôi thậm chí có thể mã hóa toàn bộ tệp thành hàm 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 cách nào để sử dụng MD5 trong PHP?

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

cú pháp

   md5(string,raw)

Tham số

Sự miêu tả

chuỗi

Bắt buộc. Đó 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 cách 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 i. e. Chúng tôi không thể giải mã giá trị băm do MD5 tạo để đư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 thứ gì đó như hack vũ phu, cực kỳ tốn tài nguyên, không thực tế và phi đạo đức. Do đó, nếu ai đó nhập đúng mật khẩu, chúng tôi 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 tôi có trong cơ sở dữ liệu của mình hay không, do đó, đây là công việc cầ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 băm MD5 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à anh ta đã 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

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

ví dụ 1

";  
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 with Edureka” được tạo bởi hàm md5()

ví dụ 2

 

đầu ra

Output - How to decrypt md5 password - 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 thì chương trình sẽ in ra “PHP with Edureka is Fun”, ngược lại sẽ in ra “tìm lỗi”

ví dụ 3

";   
echo "Setting raw input to TRUE getting 16 character binary: ".md5($string, TRUE)."
"; echo "default raw input set to FALSE giving 32 charater hex number: ".md5($string)."
"; ?>

đầu ra

Output - How to decrypt md5 password - 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 tôi đặt nó thành TRUE, nó sẽ cung cấp đầu ra nhị phân 16 ký tự, ngược lại, nó chỉ cung cấp số hex 32 ký tự

Ví dụ 4

 Correct password ";
	}
	else{
		echo "
Incorrect password "; } } ?>

đầu ra

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

Output - How to decrypt md5 password - Edureka

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

Output - How to decrypt md5 password - Edureka

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

Output - How to decrypt md5 password - Edureka

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

Output - How to decrypt md5 password - Edureka

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

Output - How to decrypt md5 password - Edureka

Bây giờ với điều này, chúng ta đã đi đế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, khi kết thúc Hướng dẫn PHP này, bạn không còn là người mới làm quen với ngôn ngữ kịch bản nữa

Nếu bạn thấy blog Hướng dẫn PHP này có liên quan, hãy xem Đào tạo Chứng chỉ PHP của Edureka, một công ty học tập 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ải rộng trên toàn cầu

Có một câu hỏi cho chúng tôi?