📖 Lý thuyết
Hash Functions (Hàm băm)
Hash Function là hàm một chiều chuyển đổi dữ liệu có độ dài bất kỳ thành một chuỗi có độ dài cố định (hash value).
Tính chất của Hash Function tốt:
- Deterministic: Cùng input → cùng output
- Fast computation: Tính toán nhanh
- Pre-image resistance: Khó tìm input từ output
- Collision resistance: Khó tìm 2 input có cùng hash
Các thuật toán Hash phổ biến
- MD5: 128-bit, đã bị phá (không an toàn)
- SHA-1: 160-bit, đã bị phá (không an toàn)
- SHA-256: 256-bit, an toàn (dùng trong Bitcoin)
- SHA-512: 512-bit, an toàn
Ứng dụng của Hash
- Password storage: Lưu hash thay vì password gốc
- Data integrity: Kiểm tra file có bị thay đổi không
- Digital signatures: Tạo chữ ký số
- Blockchain: Tạo block hash
Digital Signatures (Chữ ký số)
Digital Signature là phương pháp xác thực danh tính và đảm bảo tính toàn vẹn của thông điệp, tương tự như chữ ký tay nhưng bằng phương pháp số.
Quy trình tạo chữ ký:
- Tạo hash của thông điệp
- Mã hóa hash bằng Private Key (signing)
- Gửi thông điệp + chữ ký
Quy trình xác thực:
- Nhận thông điệp + chữ ký
- Giải mã chữ ký bằng Public Key → hash1
- Tính hash của thông điệp → hash2
- So sánh hash1 và hash2
🎮 Thử nghiệm
Hash Calculator
Hash:
Hash Collision Demo
Thử tìm 2 văn bản khác nhau có cùng hash (rất khó!):
Digital Signature Demo
Chữ ký: