Giới thiệu Tính Mã Băm Hash (MD5, SHA-256, SHA-512) Online
Hàm băm (Hash Function) là gì và tính chất một chiều của nó
Hàm băm (Hash Function) là một thuật toán toán học nhận vào một dữ liệu bất kỳ (dài bao nhiêu cũng được) và biến đổi nó thành một chuỗi ký tự có độ dài cố định. Đặc tính quan trọng nhất của Hàm băm là tính Một chiều (One-way): Bạn không thể dịch ngược từ chuỗi Hash ra lại văn bản gốc. Bất kể bạn sửa chỉ 1 dấu chấm trong văn bản gốc, mã Hash tạo ra sẽ thay đổi hoàn toàn so với ban đầu.
Tại sao MD5 và SHA-1 không còn được coi là an toàn?
MD5 và SHA-1 từng là tiêu chuẩn mã hóa của thế giới, nhưng hiện tại đã bị loại bỏ khỏi các hệ thống bảo mật:
- Tốc độ băm quá nhanh khiến Hacker có thể dễ dàng sử dụng kỹ thuật Brute Force (thử sai) hoặc Rainbow Table (Bảng cầu vồng chứa hàng tỷ mã Hash sẵn) để dò ra mật khẩu gốc.
- Lỗi đụng độ (Collision): Đã có chứng minh rằng 2 file nội dung hoàn toàn khác nhau nhưng lại sinh ra chung một mã MD5. Do đó nó không còn dùng để xác thực tính toàn vẹn của file nữa.
Ứng dụng của SHA-256 trong Blockchain và lưu trữ mật khẩu
SHA-256 (Secure Hash Algorithm 256-bit) hiện là chuẩn an toàn phổ biến nhất thế giới:
- Nó được ứng dụng sâu rộng trong mạng lưới tiền điện tử Bitcoin (Blockchain) để tạo mã định danh cho các khối (Block) và giải thuật đào coin (Proof of Work).
- Dùng để xác thực tính toàn vẹn (Checksum) của các file tải về trên mạng.
- Mặc dù an toàn hơn MD5, việc lưu mật khẩu bằng SHA-256 thuần túy vẫn có rủi ro. Bạn nên thêm "Salt" (Muối) hoặc tốt nhất là chuyển sang dùng Bcrypt.