Băm Là Gì? Giải thích Đầy đủ về Hàm Băm
Quick Answer
Hashing chuyển bất kỳ input nào thành output kích thước cố định (hash) bằng hàm one-way. Cùng input luôn tạo cùng hash; input khác tạo hash khác (collision resistance). Dùng Hash Generator miễn phí để tính SHA-256, SHA-1 và MD5 trong trình duyệt.
Introduction
Hashing là quá trình chuyển input dữ liệu kích thước bất kỳ thành output kích thước cố định gọi hash hoặc digest. Hàm hash là thuật toán thực hiện chuyển đổi. Hàm hash cryptographic có thuộc tính đặc biệt hữu ích cho integrity dữ liệu, lưu mật khẩu và chữ ký digital. Khác encryption, hashing là one-way —không thể phục hồi input từ hash.
Step by Step
-
Understand hash function properties
Cryptographic hash functions have four key properties: (1) Deterministic — same input always gives same output. (2) Quick to compute. (3) One-way — infeasible to recover input from hash. (4) Collision-resistant — infeasible to find two different inputs with the same hash. (5) Avalanche effect — small input change drastically changes output.
-
Learn common algorithms
SHA-256 (256-bit output, 64 hex chars) is the modern standard — used in Bitcoin, TLS, and digital signatures. SHA-512 is more secure but slower. SHA-3 is the newest family. MD5 (128-bit) and SHA-1 (160-bit) are broken for collision resistance and should not be used for security.
-
Distinguish hashing from encryption
Hashing is one-way — you cannot reverse it. Encryption is two-way — you can decrypt with a key. Hashing is for integrity and verification; encryption is for confidentiality. Never use a hash to store data you need to recover.
-
Use hashing correctly
For data integrity, hash the data and compare to a known-good hash. For passwords, use a slow key-stretching hash (bcrypt, scrypt, Argon2) with a unique salt — not raw SHA-256, which is too fast and vulnerable to brute force.
Examples
SHA-256 hash
Input: Hello, World!
Output: dffd6021bb2bd5b0af676290809ec008dfca50a8d29e6ac0a52c2d7e9f0a3b0c
Avalanche effect
Input: Hello, World! (vs Hello, World?)
Output: Completely different hash despite one-character change
MD5 hash (broken, legacy only)
Input: Hello, World!
Output: ed0760733d7505e9ceacf8af225020ac
Common Problems
- Using MD5 or SHA-1 for security —both are broken for collision resistance. Use SHA-256 or stronger for any security purpose.
- Hashing passwords without a salt —identical passwords produce identical hashes, enabling rainbow table attacks. Use bcrypt, scrypt, or Argon2 with a unique salt.
- Confusing hashing with encryption —hashing is one-way (cannot be reversed); encryption is two-way (can be decrypted with a key).
- Expecting hashes to be unique —collisions are theoretically possible but practically infeasible for secure algorithms (SHA-256 has 2^256 possible outputs).
Tips
- Use SHA-256 for data integrity verification, content addressing, and digital signatures.
- For password storage, use bcrypt, scrypt, or Argon2 —not raw SHA-256. These algorithms have key stretching to resist brute force.
- Hashing is one-way —never use it to store data you need to recover. Use encryption for confidential data.
- Use our Hash Generator to compute SHA-256 and other hashes instantly in your browser.