• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Thuật toán checksum CRC32 có tính duy nhất hay không?

Đây là nơi để các bạn trao đổi về cấu trúc dữ liệu và giải thuật

Điều hành viên: Điều hành

thanhthuy40
Thành viên chính thức
Thành viên chính thức
Bài viết: 32
Ngày tham gia: CN 17/05/2009 12:17 am
Đến từ: Daklak
Has thanked: 3 time

Thuật toán checksum CRC32 có tính duy nhất hay không?

Gửi bàigửi bởi thanhthuy40 » CN 02/06/2013 6:12 pm

Mình dùng thuật toán CRC32 để tạo mã checksum

CRC32("chuỗi 256 byte") => kết quả được một chuỗi 8 byte

Các bạn cho mình hỏi là có khi nào 2 chuỗi vào khác nhau mà có cùng một kết quả không vậy?



i8brfakz1gvee
Bài viết: 2
Ngày tham gia: T.Sáu 14/06/2013 1:59 pm

Re: Thuật toán checksum CRC32 có tính duy nhất hay không?

Gửi bàigửi bởi i8brfakz1gvee » T.Sáu 14/06/2013 2:42 pm

Chắc chắn là không
Bạn có thể hiểu đơn giản là chuỗi của bạn chỉ bao gồm các ký tự từ a-z ==> 26 phần tử
==> 26^256 = 171071270401117046474021258979311754959578850909434192734281218208041739279454906850302786111764310960364752841610433302089048925884603868468216639694025869503513956291020854554677358942886865467099565322891877906437779229289260234700208260350455533044530945505480506398028859212262679220313892936616222926189193913651301818362385516908978469107259185390237515776 (kết quả)
==> Một chuỗi 8 byte không thể nào biểu diễn được từng đó kết quả

Hình đại diện của người dùng
tdat00
Thành viên tích cực
Thành viên tích cực
Bài viết: 137
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Has thanked: 8 time
Been thanked: 2 time

Re: Thuật toán checksum CRC32 có tính duy nhất hay không?

Gửi bàigửi bởi tdat00 » T.Tư 19/06/2013 11:13 am

@i8brfakz1gvee: Không là không cho câu hỏi nào? Câu hỏi ở tiêu đề của chủ thớt hay câu hỏi cuối cùng???

@thanhthuy40: CRC32 hay MD5, SHA1 đều là hàm hash (kiểu như thuật toán nén có mất dữ liệu) nên về lý thuyết vẫn có trường hợp 2 chuỗi input tạo ra 1 mã hash giống nhau (Collision vulnerabilities). Vì thế tùy theo nhu cầu mà mình dùng thuật toán có độ collision phù hợp.

CRC chỉ dùng để kiểm tra file có bị hư hỏng khi download, compress...

MD5 được dùng nhiều hiện nay vì tính bảo mật tương đối. Thường để kiểm tra file có bị sửa đổi so với file gốc hay không, mã hóa password cho các hệ thống cỡ nhỏ...

SHA1 được dùng cho các hệ thống bảo mật cao như SSH, TLS...


Quay về “Cấu trúc dữ liệu và giải thuật”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.5 khách