Password hashing từ hình ảnh minh họa tới thực tế khách quan

Hiện nay có khá nhiều trang web nước ngoài bán các khóa học công nghệ thông tin. Chúng tôi viết bài này để bạn trẻ yêu thích và muốn học công nghệ thông tin biết chúng tôi hiểu rõ kĩ thuật, công nghệ và làm ra các khóa học chuyên sâu, thực chiến không thua kém nước ngoài và hơn nước ngoài ở rất nhiều nội dung.

Biết công nghệ thông tin từ hình ảnh minh họa là rất cơ bản và không đủ để bạn kiếm sống bằng nghề IT, bạn phải nhảy vào lập trình để làm cho ra ngô, ra khoai tức là làm ra để ăn được hoặc bán được.

Nhiều phần mềm, ứng dụng dù ở dạng Web application hay Windows forms đều yêu cầu người dùng phải đăng nhập vào mới sử dụng được.

Mật khẩu của người dùng thực tế được lưu ở dạng mã băm (hash) chứ không phải ở dạng văn bản rõ ràng (bản rõ – cleartext) như nhiều người vẫn nghĩ.

Dù băm mật khẩu (password hashing) kiểu gì thì cũng nhằm mục đích lưu trữ mật khẩu người dùng được an toàn, từ chuỗi băm không thể nào dịch ngược ra thành chuỗi văn bản ban đầu – điều này đã được chứng minh về mặt toán học khi thiết kế thuật toán băm trước khi đưa nó vào sử dụng.

Khi tìm hình ảnh trên mạng về băm mật khẩu bạn có thể thấy những hình như này

How to store passwords in Database?

Mật khẩu của ứng dụng web được lưu kiểu gì lưu trong cơ sở dữ liệu? Câu trả lời đó là 1 chuỗi băm hay password hashing string.

Nhìn vào hình ảnh băm mật khẩu này bạn sẽ nghĩ salt nằm ở 1 cột (column, field) riêng, mã băm nằm ở 1 cột riêng trong cơ sở dữ liệu.

Nhưng thực tế có phải như vậy không? Làm sao biết được hình minh họa này là đúng hay sai?

Theo các thống kê trên mạng thì WordPress, Joomla, Drupal là những Web CMS (Content Management Systems) chiếm đến 70% – 80% số lượng trang web trên thế giới này.

Nên chúng tôi sẽ chọn Top 3 Web CMS thông dụng nhất quả đất này là Wordrpess, Joomla, Drupal để kiếm chứng hình trên về băm mật khẩu để thấy thực tế khác xa hình minh họa và bạn phải nhảy vào làm mới biết chứ không chỉ xem hình ở đâu đó.


WordPress băm mật khẩu bằng hàm wp_hash_password xài hàm PasswordHash của ngôn ngữ lập trình PHP.

Xài phpmyadmin là trang web viết bằng PHP để quản lí MySQL để nhìn băm mật khẩu trên web cho dễ hơn.


Joomla CMS có control panel đầy đủ các thứ để bạn cấu hình, quản trị. Đây là phần khó nhất, phức tạp nhất của 1 CMS còn việc viết ra 1 trang web là không khó.

Joomla băm mật khẩu bằng hàm hashPassword trong đó xài hàm password_hash của ngôn ngữ lập trình PHP.

Joomla băm mật khẩu bằng thuật toán Bcrypt.

Băm mật khẩu bằng Bcrypt của Joomla nhìn từ phpmyadmin.


Drupal CMS có panel admin quản lí với UI/UX khá độc đáo.

Drupal băm mật khẩu bằng thuật toán Bcrypt mặc định của hàm password_hash của ngôn ngữ lập trình PHP.

Băm mật khẩu bằng Bcrypt của Drupal nhìn từ phpmyadmin.