SHA-1 là gì?
SHA-1 (Secure Hash Algorithm 1) xuất ra một bản tóm tắt 160-bit (40 ký tự hex). Được thiết kế bởi NSA và được xuất bản bởi NIST vào năm 1995 (FIPS 180-1), nó trở nên phổ biến cho chữ ký số, kiểm tra tệp và hệ thống quản lý phiên bản.
Lưu ý bảo mật: SHA-1 đã bị phá vỡ — sử dụng SHA-256, SHA-3 hoặc BLAKE3 cho các hệ thống mới.
Cách SHA-1 hoạt động
- Đệm thông điệp → độ dài ≡ 448 (mod 512) bit
- Thêm độ dài 64-bit của thông điệp gốc
- Khởi tạo năm từ 32-bit (A–E)
- Xử lý các khối 512-bit qua 80 phép toán (bốn vòng)
- Xuất bản tóm tắt cuối cùng 160-bit
Tình trạng bảo mật
- 2005 — các cuộc tấn công va chạm lý thuyết đầu tiên
- 2017 — Google & CWI Amsterdam chứng minh va chạm thực tế (PDF “SHAttered”)
- Trình duyệt hiện không tin cậy chứng chỉ TLS SHA-1
- NIST ngừng sử dụng SHA-1 cho chữ ký số vào năm 2011
Ví dụ các giá trị băm
Input | Băm SHA-1 |
---|---|
Hello World | 0a4d55a8d778e5022fab701977c5d840bbc486d0 |
password | 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 |
test123 | 7288edd0fc3ffcbe93a0cf06e3568e28521687bc |
(rỗng) | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
SHA-1 so với các hàm băm khác
Algorithm | Output | Security | Speed |
---|---|---|---|
MD5 | 128 bit | ❌ Bị phá vỡ | ⚡ Rất nhanh |
SHA-1 | 160 bit | ❌ Bị xâm phạm | ⚡ Nhanh |
SHA-256 | 256 bit | ✅ An toàn | 🚀 Trung bình |
SHA-3 | Variable | ✅ Rất an toàn | 🚀 Trung bình |
BLAKE3 | 256 bit | ✅ An toàn | ⚡ Rất nhanh |
Câu hỏi thường gặp
SHA-1 có an toàn cho mật khẩu không?
Không. Hãy sử dụng bcrypt, Argon2 hoặc PBKDF2 thay thế.
Va chạm SHA-1 là gì?
Va chạm xảy ra khi hai đầu vào khác nhau tạo ra cùng một giá trị băm. Cuộc tấn công “SHAttered” năm 2017 đã chứng minh va chạm trong thực tế.
Tại sao Git vẫn sử dụng SHA-1?
Thiết kế của Git giới hạn khả năng khai thác, nhưng dự án đang chuyển sang SHA-256.