Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2312 bài viết · Website
Bảo mật 22/09/2026 5 phút

AES và chế độ mã hóa: vì sao ECB lộ mẫu dữ liệu — thấy tận byte

AES mã hóa từng khối 16 byte; chế độ quyết định cách ghép các khối, và chọn sai thì mã hóa mà vẫn lộ thông tin. Bài này đo thật: cùng bốn khối giống hệt, ECB cho bốn khối mã GIỐNG HỆT (lộ mẫu — như ảnh chim cánh cụt kinh điển), còn CBC cho bốn khối khác nhau. Kèm vai trò của IV: cùng bản rõ, IV khác thì bản mã khác.

Bảo mật 22/09/2026 5 phút

Đường cong elliptic (EC): vì sao khóa 256-bit mạnh ngang RSA 3072 — đo thật

RSA khóa càng dài càng chậm và cồng kềnh. Đường cong elliptic đạt cùng mức an toàn với khóa nhỏ hơn nhiều nhờ dựa trên một bài toán khó khác. Bài này đo thật bằng openssl: khóa riêng EC P-256 chỉ 241 byte so với RSA 3072 là 2484 byte, và ECDSA ký nhanh hơn RSA tới ~90 lần — kèm đánh đổi RSA verify vẫn nhanh hơn.

Lập trình Go 22/09/2026 9 phút

Functional options nâng cao trong Go: closure làm cấu hình, tự validate, tương thích ngược

Functional options dùng closure làm tham số cấu hình, cho API mở rộng mà vẫn tương thích ngược. Đo thật trong Go 1.23: option tự validate và gộp lỗi tại constructor, chậm hơn config struct khoảng 6ns nhưng cùng một cấp phát, và closure không thoát heap khi dùng trực tiếp.

Lập trình Go 22/09/2026 11 phút

Property-based testing trong Go: khẳng định tính chất, để máy tìm phản ví dụ

Test ví dụ kiểm từng cặp input-output cụ thể; property-based testing khẳng định một tính chất đúng với mọi input rồi để máy sinh hàng vạn input tìm phản ví dụ. Đo thật trong Go với testing/quick: bất biến sắp xếp qua 100k input, và round-trip lộ bug logic khi list rỗng ra [0] — thứ fuzzing trần bỏ lọt.