Hashing and digital signatures · Hashing và chữ ký số
Hashing protects integrity
- We hashed passwords for secrecy. Hashing also protects integrity — proving data was not changed.
- Change even one character of the input, and the hash changes completely.
HASH bảo vệ tính toàn vẹn
- Chúng ta đã tạo hash cho mật khẩu nhằm mục đích giữ bí mật. Hash cũng bảo vệ tính toàn vẹn — chứng minh dữ liệu không bị thay đổi.
- Chỉ cần thay đổi một ký tự đầu vào, giá trị hash sẽ thay đổi hoàn toàn.
import hashlib
print(hashlib.sha256(b"hello").hexdigest()[:16])
print(hashlib.sha256(b"hellp").hexdigest()[:16]) # totally different
Checking a download
- Websites publish the hash of a file. After downloading, you hash your copy and compare.
- If the two hashes match, the file arrived intact. If not, it was corrupted or tampered with.
Kiểm tra tải xuống
- Các trang web công bố hash của một tập tin. Sau khi tải về, bạn tạo hash bản sao của mình và so sánh.
- Nếu hai giá trị hash khớp nhau, tập tin đã đến nguyên vẹn. Nếu không, nó đã bị hỏng hoặc bị can thiệp.
Digital signatures
- A digital signature proves who sent something and that it was not changed.
- The sender hashes the message and encrypts that hash with their private key.
- Anyone can check it with the sender's public key — only the real sender could have made it.
Chữ ký số
- Một chữ ký số chứng minh ai đã gửi thứ gì và rằng nó chưa bị thay đổi.
- Người gửi tạo hash tin nhắn và mã hóa giá trị hash đó bằng khóa riêng của họ.
- Ai cũng có thể kiểm tra bằng khóa công khai của người gửi — chỉ có chủ sở hữu thực sự mới có thể tạo ra nó.
Your turn
- Compare the hashes of an original and a received message.
Truemeans the message is intact.
Covers: A-Level 17.1 (digital certification), 6.2 (integrity).
Đến lượt bạn
- So sánh hash của tin nhắn gốc và tin nhắn đã nhận.
Truenghĩa là tin nhắn nguyên vẹn.
Phạm vi: A-Level 17.1 (chứng nhận kỹ thuật số), 6.2 (tính toàn vẹn).
Common mistakes
- A hash is one-way — you cannot get the original back from it.
- A digital signature proves who sent a message and that it was not changed.
Lỗi thường gặp
- Hash là một chiều — bạn không thể khôi phục lại dữ liệu gốc từ đó.
- Chữ ký số chứng minh ai đã gửi tin nhắn và rằng tin nhắn chưa bị thay đổi.
Hashing & signatures · Hashing & chữ ký số
A hash is one-way and avalanches — perfect for fingerprints. · Hashing mang tính một chiều và tạo hiệu ứng lũ Avalanche — hoàn hảo để làm dấu vân tay số.
Check whether a received message is unchanged. Hash both original and received with SHA-256 and print whether the two digests are equal (True or False). · Kiểm tra xem tin nhắn nhận được có bị thay đổi hay không. Hash cả original và received bằng SHA-256, sau đó print xem hai digest có bằng nhau không (True hoặc False).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
This time an attacker edited the message in transit. Hash both versions and print TAMPERED if the digests differ, else OK — one changed character is enough to catch. · Lần này một kẻ tấn công đã chỉnh sửa tin nhắn trong quá trình truyền tải. Hash cả hai phiên bản và in ra TAMPERED nếu digest khác nhau, ngược lại in ra OK — chỉ cần một ký tự thay đổi là đủ để phát hiện.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.