Tạo SHA-1 Hash - Mã hóa SHA-1
Công cụ tạo SHA-1 hash, mã hóa SHA-1 online miễn phí. Tạo SHA-1 hash từ văn bản ngay lập tức. Tạo SHA-1 checksum 160-bit để xác minh tính toàn vẹn dữ liệu và phát triển. Băm SHA-1 nhanh phía client.
Tạo SHA-1 Hash - Generate SHA-1 Checksums Online
Công cụ tạo SHA-1 hash online miễn phí tạo SHA-1 checksum 160-bit từ bất kỳ văn bản đầu vào nào. Hoàn hảo cho lập trình viên và quản trị viên hệ thống cần SHA-1 hash cho hệ thống cũ, Git commits và kiểm thử phát triển. Nhanh chóng, xử lý phía client với kết quả ngay lập tức.
SHA-1 là gì và hoạt động ra sao?
SHA-1 (Secure Hash Algorithm 1) là hàm băm mật mã do NSA thiết kế và NIST công bố năm 1995 dưới FIPS PUB 180-1. Nó tạo ra giá trị băm 160 bit (20 byte), thường được biểu diễn dạng chuỗi hexadecimal 40 ký tự. SHA-1 xử lý đầu vào theo khối 512 bit qua 80 vòng các phép toán bit, cộng mô-đun và xoay. Đầu vào được đệm thành bội số 512 bit với độ dài mã hóa ở 64 bit cuối. Đầu ra mang tính tất định — cùng đầu vào luôn cho cùng băm. SHA-1 từng được dùng rộng rãi trong TLS, Git và chữ ký số trước khi bị khuyến nghị loại bỏ cho các mục đích bảo mật.
SHA-1 còn an toàn để sử dụng không?
Không — SHA-1 đã bị phá vỡ mật mã về khả năng chống va chạm. Tháng 2 năm 2017 Google và CWI Amsterdam công bố 'SHAttered', tấn công va chạm thực tế đầu tiên tạo hai tệp PDF khác nhau có cùng băm SHA-1 (bài: shattered.io). Chi phí tấn công khoảng 110.000 USD trong điện toán đám mây. NIST chính thức khuyến nghị loại bỏ SHA-1 vào năm 2011 (SP 800-131A) và cấm dùng cho chữ ký số năm 2014. Trình duyệt hiện đại (Chrome 56+, Firefox 51+, Safari 11+) từ chối chứng chỉ TLS ký bằng SHA-1. Dùng SHA-256, SHA-3 hoặc BLAKE3 cho mọi ứng dụng mật mã mới. SHA-1 vẫn chấp nhận được chỉ cho mục đích phi bảo mật như checksum nội dung hoặc ID commit Git.
Vì sao Git vẫn dùng SHA-1?
Git dùng SHA-1 để sinh ID commit, băm tree và băm blob. Linus Torvalds chọn SHA-1 năm 2005 vì tốc độ và tính độc nhất đủ dùng trong môi trường phi đối kháng. Git đang chuyển sang SHA-256 — Git 2.29 (10/2020) thêm hỗ trợ kho SHA-256 thử nghiệm. Các tấn công va chạm kiểu SHAttered không thực tế trong Git vì tạo nội dung độc hại khớp với SHA-1 của commit hiện có khó hơn nhiều việc tạo ra hai tệp tùy ý va chạm. Dự án Git ghi nhận biện pháp gia cố năm 2018 để phát hiện tấn công kiểu SHAttered ở cấp giao thức. Kho mới nên chọn `git init --object-format=sha256` để chuẩn bị tương lai, dù tương thích SHA-1 vẫn là mặc định hiện tại.
SHA-1 khác MD5 và SHA-256 thế nào?
MD5 cho 128 bit (32 ký tự hex), SHA-1 cho 160 bit (40 ký tự hex), SHA-256 cho 256 bit (64 ký tự hex). MD5 bị phá năm 2004 (tấn công va chạm của Wang và cộng sự); SHA-1 bị phá năm 2017 (SHAttered). SHA-256 (thuộc họ SHA-2, FIPS PUB 180-4) vẫn an toàn tính đến 2025 không có tấn công thực tế nào được biết. SHA-256 chậm hơn SHA-1 khoảng 50 phần trăm trên CPU hiện đại nhưng có tăng tốc phần cứng qua Intel SHA extensions và ARMv8 Crypto extensions. Cho ứng dụng mới hãy dùng SHA-256 hoặc SHA-3; không bao giờ dùng MD5 hay SHA-1 cho mục đích mật mã.

Có thể đảo ngược SHA-1 để tìm đầu vào gốc không?
Không — SHA-1 là hàm một chiều theo thiết kế. Cho một băm, không có phép toán nào để khôi phục đầu vào gốc. Tuy nhiên với đầu vào ngắn hoặc entropy thấp (mật khẩu, từ thông dụng), kẻ tấn công có thể dùng bảng cầu vồng (ánh xạ băm → đầu vào tính trước) hoặc tấn công vét cạn/từ điển. Với mật khẩu 8 ký tự chữ thường-số, GPU hiện đại có thể tính tất cả 2,8 nghìn tỷ băm SHA-1 khả dĩ trong chưa đầy một ngày. Đó là lý do SHA-1 (và SHA-256) không bao giờ nên dùng để lưu mật khẩu trực tiếp — dùng bcrypt, Argon2id, scrypt hoặc PBKDF2 với muối đúng cách và nhiều vòng lặp. NIST SP 800-63B yêu cầu Argon2 hoặc bcrypt cho lưu trữ mật khẩu.
Tôi tạo băm SHA-1 trong mã thế nào?
Python: `import hashlib; hashlib.sha1(b'hello').hexdigest()` trả về 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d'. JavaScript (trình duyệt): `await crypto.subtle.digest('SHA-1', new TextEncoder().encode('hello')).then(b => Array.from(new Uint8Array(b)).map(b => b.toString(16).padStart(2, '0')).join(''))`. Node.js: `crypto.createHash('sha1').update('hello').digest('hex')`. Bash/Unix: `echo -n 'hello' | sha1sum`. Tất cả đều cho cùng chuỗi hexadecimal 40 ký tự. Khác biệt chuỗi byte và chuỗi văn bản rất quan trọng: `'hello'.encode()` trong Python cho byte; truyền chuỗi thường có thể gây TypeError. Luôn chỉ định mã hóa đầu vào (thường UTF-8) một cách rõ ràng cho nội dung không phải ASCII.
HMAC-SHA1 là gì và còn chấp nhận được ở đâu?
HMAC-SHA1 (RFC 2104) kết hợp khóa bí mật với SHA-1 để tạo mã xác thực thông điệp 160 bit. Dù khả năng chống va chạm của SHA-1 bị phá, HMAC-SHA1 vẫn an toàn vì HMAC dựa vào tính chất hàm giả ngẫu nhiên của hàm băm cơ sở, không phải tính chống va chạm. AWS Signature Version 2 trước đây dùng HMAC-SHA1 (nay đã ngưng dùng để chuyển sang Signature Version 4 với HMAC-SHA256). OAuth 1.0a (RFC 5849) chỉ định HMAC-SHA1 làm phương pháp ký. Ứng dụng hiện đại vẫn nên chuyển sang HMAC-SHA256 (RFC 4868) hoặc HMAC-SHA3 vì những điểm yếu tương lai trong SHA-1 có thể ảnh hưởng HMAC về sau, và phần cứng hiện đại tăng tốc SHA-256 ngang ngửa.
Checksum SHA-1 của tệp dùng để làm gì?
Checksum SHA-1 vẫn được dùng rộng rãi để xác minh tính toàn vẹn tệp trong ngữ cảnh phi đối kháng: tải về bản phân phối Linux (Debian, Ubuntu cung cấp SHA1SUMS và SHA256SUMS), manifest hình ảnh Docker, ID commit GitHub, băm mảnh BitTorrent và hệ thống lưu trữ định địa chỉ theo nội dung. Chúng phát hiện hỏng do lỗi đĩa hoặc tải về một phần nhưng không thể chống can thiệp ác ý. Luôn ưu tiên checksum SHA-256 khi có — hầu hết bản phân phối nay công bố cả hai. Để xác minh: `sha1sum file.iso` và so với giá trị công bố. Trình diễn shattered.io cho thấy hai PDF chế tạo có cùng SHA-1 nhưng nội dung khác nhau, vì vậy chỉ tin cậy SHA-1 cho tính toàn vẹn phi đối kháng.
Key Features
- Generate SHA-1 hash from any text instantly
- 160-bit (40-character) hash output
- Lowercase or uppercase hexadecimal format
- Web Crypto API for fast hashing
- Input length statistics
- Copy hash to clipboard
- Download hash as text file
- Dark mode support
- 100% client-side processing
- Works offline
- Mobile-friendly design
- No registration required
