Hàm md5() trong PHP

Hàm md5() trong PHP
Hàm md5() trong PHP

Chức năng của Hàm md5() trong PHP

Hàm md5() trong PHP dùng để mã hóa chuỗi ký tự thành một chuỗi giá trị băm gồm 32 ký tự, hàm này bảo mật kém, nếu muốn dùng hàm md5() để mã hóa mật khẩu thì nên kết hợp với hàm khác hoặc dùng hàm bảo mật hơn.

Cú pháp của Hàm md5() trong PHP

md5("chuỗi_ký_tự");

chuỗi_ký_tự: Chuỗi ký tự cần mã hóa md5().

Ví dụ & Ứng dụng Hàm md5() trong PHP

Ví dụ Hàm md5() trong PHP

Kết quả mã hóa hàm md5() cho ra 32 ký tự:

<?php
echo md5("ps12345");
echo "<br>";

echo md5("ps1hudwef2345");
echo "<br>";

echo md5("ps12345ề");
echo "<br>";

echo md5("ps123dsfs45");
echo "<br>";

echo md5("ps123dsfs45");
?>

Kết quả:

02a865ec04b2a32ca1b3496911d0c3da
5ca8fce99471353713534f643b5f4559
316840dbf2a7532dfdac14af99b56e06
18fe44345b4e67676aa10b2a921f961c
18fe44345b4e67676aa10b2a921f961c

Chạy Thử

Ứng dụng Hàm md5() trong PHP

Mật khẩu khách nhập là ps12345, mình lấy mật khẩu đó mã hóa md5() và so sánh với mật khẩu đã mã hóa md5() trong database, nếu giống nhau thì thông báo Đúng mật khẩu, nếu không giống nhau thì thông báo Sai mật khẩu:

<?php
$matkhaunhap = "ps12345";

$matkhaumd5 = md5($matkhaunhap);

$matkhausql = "02a865ec04b2a32ca1b3496911d0c3da";

if($matkhaumd5 == $matkhausql){
echo "Đúng mật khẩu";
}else{
echo "Sai mật khẩu";
}
?>

Kết quả:

Đúng mật khẩu

Chạy Thử

Khi nào nên và không nên sử dụng md5() trong PHP?

Hàm md5() có thể tạo ra chuỗi băm nhanh từ một giá trị đầu vào, nhưng không phải trường hợp nào cũng phù hợp để sử dụng. Việc lựa chọn md5() nên dựa trên mục đích xử lý dữ liệu thay vì chỉ dựa vào sự đơn giản của hàm.

Trường hợp có thể sử dụng md5()

md5() có thể phù hợp với những tác vụ không yêu cầu mức bảo mật cao, chẳng hạn tạo mã nhận diện từ nội dung, kiểm tra nhanh dữ liệu có thay đổi hay không hoặc tạo chuỗi băm phục vụ một số cơ chế xử lý nội bộ.

Ví dụ, có thể tạo giá trị băm từ nội dung của một chuỗi để so sánh với lần kiểm tra trước:

<?php
$data = 'Noi dung can kiem tra';
$hash = md5($data);

echo $hash;
?>

Trong những trường hợp này, mục tiêu chính thường là tạo ra một giá trị đại diện cho dữ liệu chứ không phải bảo vệ dữ liệu trước các cuộc tấn công. Tuy nhiên, nếu yêu cầu có liên quan đến bảo mật, nên cân nhắc thuật toán hiện đại hơn.

Vì sao không nên dùng md5() để lưu mật khẩu?

Không nên dùng md5() để băm mật khẩu người dùng. MD5 đã có những điểm yếu về bảo mật và tốc độ xử lý cao khiến việc thử nhiều mật khẩu trở nên thuận lợi hơn. Việc thêm MD5 vào mật khẩu theo cách thông thường cũng không biến nó thành một giải pháp lưu mật khẩu an toàn.

Trong PHP, mật khẩu nên được xử lý bằng password_hash() và kiểm tra bằng password_verify(). Các hàm này được thiết kế riêng cho bài toán lưu trữ mật khẩu và giúp ứng dụng tránh phải tự xây dựng cơ chế băm mật khẩu thủ công.

Vì vậy, nếu dữ liệu cần được bảo vệ như mật khẩu, thông tin xác thực hoặc dữ liệu nhạy cảm, không nên lựa chọn md5() chỉ vì hàm này dễ sử dụng và cho kết quả nhanh.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm md5() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm md5() trong PHP
Email, Điện thoại 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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !