Hướng dẫn dùng php 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.

Hướng dẫn dùng php md5 trong PHP

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
123456789 25f9e794323b453885f5181f1b624d0b
apple 1f3870be274f6c49b3e31a0c6728957f
gochocit.com 82f994e3d08ae2fe4c7785e31b364454
….

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.

  • Các kiểu dữ liệu cơ bản và kiểu chuỗi (String) trong Java
  • Hiểu rõ về bộ nhớ của biến trong C++
  • Mối liên hệ giữa cấu trúc dữ liệu và giải thuật
  • Các loại ngoại lệ (exceptions) trong Java
  • Cú pháp và cách sử dụng vòng lặp for trong C++

PHP programming

Điều hướng bài viết

Hàm md5() sẽ mã hóa một chuỗi. Hàm sẽ trả về một chỗi md5 đã mã hóa.

Hướng dẫn dùng php md5 trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Hàm md5() được sử dụng khi bạn muốn tạo một chuỗi mã hóa ví dụ như mật khẩu người dùng để lưu vào csdl .vv..

Cú pháp

Cú phápmd5( $str, $raw_output);

Trong đó:

Bài viết này được đăng tại [free tuts .net]

  • $str là chuỗi cần mã hóa.
  • $raw_output là tham số, mặc định mang giá trị FALSE, nếu $raw_output mang giá trị TRUE chuỗi trả về sẽ có độ dài là 16 kí tự, nếu $raw_output mang giá trị FALSE chuỗi trả về sẽ có 32 kí tự.

Ví dụ

Code

$str = "Freetuts.net";
$strMd5 = md5($str);

echo strlen($strMd5) ."-".($strMd5);

Kết quả

32-7e84c67e65c8d28c53ac5c33b8e3fdb6

Tham khảo: php.net

Cùng chuyên mục:

Hàm md5() là hệ mã hóa một chiều, giúp mã hóa những thông tin quan trọng. Trên thực tế chúng ta thường dùng để xây dựng mật khẩu của người dùng nhằm mục đích bảo mật, an toàn thông tin của tài khoản.

Cú pháp

md5(string $str)

input: $str: Chuỗi cần mã hóa

Output: Chuỗi dữ liệu có 32 ký tự sau khi mã hóa

Lưu ý: Đây là hệ mã hóa 1 chiều nên hàm này chỉ đóng vai trò mã hóa và không có hàm giải mã nó. Có nghĩa từ dữ liệu được mã hóa muốn tìm ra chuỗi ban đầu cần phải vét cạn.

Thuật toán kiểm tra mật khẩu

Để kiểm tra mật khẩu đúng hay không cần phải kiểm tra chuỗi sau khi mã hóa có khớp hay không.

Tôi có ví dụ bên dưới $password_db là mật khẩu người dùng đã được mã hóa sau khi đăng ký tài khoản hệ thống. $password là chuỗi ký tự người dùng nhập vào mật khẩu để đăng nhập.

Để kiểm tra xem mật khẩu có đúng hay không chúng ta cần kiểm tra theo ý tưởng bên dưới.

Ví dụ hàm Md5()

Ví dụ 1: Mã hóa chuỗi “abc”

Kết quả ta nhận được chuỗi

900150983cd24fb0d6963f7d28e17f72

Ví dụ 2: Mã hóa mật khẩu “unitop20!@#”

30868f64811f1c4eb9a9a32fac786485

Tổng kết

Qua bài này tôi đã hướng dẫn bạn cách để mã hóa một thông tin cho trước với hàm md5(). Hàm này thường được sử dụng để mã hóa mật khẩu người dùng nhằm tăng độ an toàn cho tài khoản.

Ngay bây giờ bạn nên ghi chú lại hàm này và thực hành lại để nắm chắc bài học.

Xin chào, sớm hẹn gặp lại!