Hàm băm nhận dữ liệu đầu vào và tạo một giá trị tóm tắt gọi là digest. Với hàm băm mật mã phù hợp, digest giúp kiểm tra dữ liệu có thay đổi; nó không phải bản mã có thể giải ngược bằng một chiếc khóa.
SHA-256 là một thuật toán trong Secure Hash Standard của NIST. Đầu ra của nó dài 256 bit, thường được trình bày dưới dạng 64 ký tự hệ mười sáu. Việc thay cách trình bày không thay đổi giá trị đang được biểu diễn. Nguồn: NIST FIPS 180-4, Explanation và Parameters.
Tạo rồi so sánh digest
Có thể hiểu quá trình qua ba bước. Một là xác định chính xác dữ liệu đầu vào. Hai là chạy đúng thuật toán để tính digest. Ba là so digest mới với giá trị đối chiếu đáng tin cậy.
Nếu các giá trị không khớp, dữ liệu hoặc cách xử lý đầu vào đã khác. Nếu chúng khớp, kết quả hỗ trợ kiểm tra tính toàn vẹn trong những giả định bảo mật phù hợp; nó không tự xác nhận người gửi hoặc nguồn gốc của giá trị đối chiếu.
Khi so sánh, dấu cách, ký tự xuống dòng và cách mã hóa văn bản đều quan trọng. Người dùng thấy cùng một từ trên màn hình chưa đủ để kết luận phần mềm đã băm cùng một chuỗi byte.
Ví dụ tính được lại: abc và abd
iCapital tính SHA-256 bằng Python hashlib ngày 04/11/2026, sử dụng đúng các byte UTF-8 của chuỗi bên dưới, không kèm dấu cách hoặc xuống dòng:
| Input | SHA-256 |
|---|---|
abc |
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
abd |
a52d159f262b2c6ddb724a61840befc36eb30c88877a4030b65cbe86298449c9 |
Phép tính cho thấy hai dữ liệu chỉ khác một ký tự đã có digest khác nhau. Đây là ví dụ tái tạo, không phải dữ liệu giao dịch hay chuỗi hash của một khối Bitcoin.
“Dấu vân tay” chỉ là phép so sánh
NIST mô tả mục tiêu bảo mật gồm việc làm cho tìm đầu vào tương ứng hoặc hai đầu vào khác nhau cùng digest trở nên bất khả thi về tính toán trong giả định của thuật toán. Điều này khác với khẳng định toán học rằng không tồn tại va chạm: đầu ra hữu hạn vẫn có thể tương ứng nhiều đầu vào. Nguồn: FIPS 180-4, Explanation.
Hash cũng không tự che giấu dữ liệu ít khả năng lựa chọn. Nếu đầu vào có thể đoán, một bên có thể thử các khả năng rồi so kết quả. Vì thế, không nên coi việc công bố digest là phương án bảo mật thích hợp cho mọi dữ liệu nhạy cảm.
Bitcoin dùng hash ở đâu?
Hash xuất hiện trong nhiều cấu trúc, nhưng mỗi ứng dụng có mục tiêu riêng. Cần theo đường dẫn tới cấu trúc cụ thể thay vì gộp mọi lần băm vào một chức năng chung hoặc suy từ hash sang “không thể sửa dữ liệu”.
Kết luận
Hàm băm biến dữ liệu thành một digest có độ dài cố định; chỉ cần đổi một ký tự, digest đã khác hẳn — như ví dụ abc và abd. Nhờ vậy, hash rất hữu ích để phát hiện dữ liệu bị thay đổi, nhưng nó không phải mã hóa và không tự chứng minh dữ liệu là đúng. Trong Bitcoin, hash xuất hiện ở nhiều cấu trúc, mỗi nơi với một mục đích riêng.
Đọc tiếp
Đọc Cơ chế blockchain, Mạng Bitcoin, Mật mã học, Merkle tree, Proof of Work và Thư viện thuật ngữ.