Hàm md5() trong PHP

1. Chức năng của hàm md5()

Hàm md5() trong PHP có chức năng mã hóa một chuỗi ký tự thành một chuỗi ký tự khác gồm có 32 ký tự với hàm băm (hash) mật mã học md5. Mỗi ký tự mã hóa được biểu diễn dưới dạng hệ cơ số 16. Do đó, kích thước của chuỗi mã hóa trả về là 128 bit.

Minh họa md5

Hàm băm md5 có đặc điểm là chỉ mã hóa một chiều, tức là không giải mã ngược lại được.

2. Cú pháp của hàm md5()

md5(string $string, bool $binary = false): string

Trong đó:

    • $string: chuỗi ký tự cần mã hóa có độ dài bất kỳ
    • $binary: tùy chọn, mặc định là false. Nếu đặt là true thì chuỗi mã hóa được trả về là chuỗi nhị phân đã mã hóa.
    • Kết quả trả về là chuỗi có 32 ký tự được biểu diễn dưới dạng hệ cơ số 16.

3. Một số ví dụ sử dụng hàm md5()

Mã hóa với $binary == false

$str = "gochocit.com";
$str = md5($str);//82f994e3d08ae2fe4c7785e31b364454
//hoặc
$str = md5($str, false);//82f994e3d08ae2fe4c7785e31b364454

Mã hóa với $binary == true

$str = "gochocit.com";
$str = md5($str, true);// ����Њ��Lw�� 6DT

Kiểm tra chuỗi md5 với câu lệnh if

$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Would you like a green or red apple?";
}

Lưu ý: Không khuyến khích sử dụng hàm md5() để tạo password bảo mật. Tuy rằng, không thể giải mã ngược một chuỗi ký tự được mã hóa md5. Nhưng có thể lưu trữ một cơ sở dữ liệu rất lớn gồm hàng triệu chuỗi ký tự và chuỗi mã hóa md5 của nó. Ví dụ như bảng bên dưới:

Chuỗi ký tựChuỗi mã hóa md5
12345678925f9e794323b453885f5181f1b624d0b
apple1f3870be274f6c49b3e31a0c6728957f
gochocit.com82f994e3d08ae2fe4c7785e31b364454
….

Khi muốn giải mã chuỗi md5 như 82f994e3d08ae2fe4c7785e31b364454 thì chỉ cần truy xuất trong cơ sở dữ liệu này thì sẽ giải mã được chuỗi ký tự ban đầu.

Đã có rất nhiều website dùng cách này để giải mã md5 như https://md5decrypt.net/, https://www.md5online.org/md5-decrypt.html,… Và chắc chắn đã có rất nhiều cơ sở dữ liệu lưu trữ chuỗi mã hóa md5 như thế. Do đó, rõ ràng mã hóa md5 hiện không quá an toàn để dùng bảo mật tài khoản.

5/5 - (5 bình chọn)
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.