Hồi thời mình còn là sinh viên, lơ tơ mơ như bò đeo nơ. Khi thiết kế cơ sở dữ liệu cho phần mềm quản lý thì mình lại lưu mật khẩu người dùng với một cách rất trần trụi: dạng plain text.

Nhưng dần dần mình cũng khôn ra một tí, nhận ra rằng: Cho dù mật khẩu người dùng đặt mạnh cỡ nào đi nữa mà nó trần như nhộng nằm ở database thì cũng như không!

Vậy làm sao để lưu trữ mật khẩu vào cơ sở dữ liệu?

Chính là mã hóa mật khẩu trước khi đưa vào lưu trữ. Ta sẽ biến chuỗi mật khẩu có thể đọc được thành một chuỗi mà Trời nhìn vào cũng méo biết.

Sau khi vùi mài kinh sử một vài đêm thì mình đánh giá rằng hiện nay có nhiều thuật toán để mã hóa dữ liệu. Thuật toán mã hóa phổ biến và dễ làm nhất là thằng MD5 Hash - băm chuỗi ra. Một chuỗi đã băm ra rồi thì chính mình cũng không thể nào mà giải mã được nữa.

Giới thiệu MD5 Hash

Để biết thêm về thuật toán mã hóa này, bạn có thể tìm trên Google hoặc Wikipedia để biết thêm. Mình chỉ tóm tắt là thuật toán này sẽ biến chuỗi plain text của bạn thành một chuỗi số thập lục phân, có độ dài 32 ký tự. Cho dù mật khẩu của bạn dài bao nhiêu ký tự đi nữa, thì nó cũng sẽ băm về thành chuỗi 32 ký tự.

Viết bằng C#

Sau khi đã hiểu sơ sơ về MD5 rồi, thì câu hỏi đặt ra là làm sao viết nó bằng C#, trên .Net framework? Cũng thật may mắn là nó được định nghĩa sẵn trong System.Security.Cryptography rồi. 

Giờ mình sẽ viết đoạn code mẫu như sau:


Hi vọng bài viết đơn giản này sẽ hữu ích cho bạn.



2 Nhận xét

  1. vậy còn giải mã thì sao ạ

    Trả lờiXóa
    Trả lời
    1. MD5 không thể giải mã bạn ạ, chỉ có một chiều mã hóa mà thôi. Thông tin đến bạn.

      Xóa

Đăng nhận xét

Mới hơn Cũ hơn