SHA-256
SHA-256 (Secure Hash Algorithm 256-bit)
Hàm băm mật mã tạo ra bản tóm tắt cố định 256-bit (32-byte) từ bất kỳ đầu vào nào, được sử dụng rộng rãi để xác minh tính toàn vẹn dữ liệu, chữ ký số, blockchain và lưu trữ mật khẩu.
Chi tiết kỹ thuật
SHA-256, thuộc họ SHA-2 do NSA thiết kế, xử lý đầu vào theo khối 512-bit qua 64 vòng phép toán bitwise, cộng modular và hàm nén. Đầu ra là chuỗi thập lục phân 64 ký tự (256 bit). Chưa tìm thấy va chạm thực tế nào cho SHA-256 (không giống SHA-1 và MD5). Ứng dụng bao gồm Git commit hash, khai thác Bitcoin (SHA-256 kép), dấu vân tay chứng chỉ TLS, và kiểm tra tính toàn vẹn tệp (checksum). Web Crypto API cung cấp subtle.digest('SHA-256', data) để hỗ trợ trình duyệt gốc. Để băm mật khẩu, các hàm chuyên dụng (bcrypt, Argon2) được ưu tiên hơn SHA-256 thô do chi phí tính toán có chủ đích của chúng.
Ví dụ
```javascript
// SHA-256 — Web Crypto API example
const data = new TextEncoder().encode('sensitive data');
const hash = await crypto.subtle.digest('SHA-256', data);
const hex = Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0')).join('');
```