Chỉ xây dựng lại tệp nhỏ từ các giá trị băm [đóng]


1

Tôi đang tìm kiếm nếu có thể tái tạo một cách dễ dàng nội dung gốc của tệp văn bản chỉ từ một giá trị băm được lưu trữ (tôi thích thuật toán kiểm tra CRC thay vì các thuật toán khác, vì dấu chân của nó rất nhỏ, mặc dù nó có thể được coi là BAD cho các đầu vào lớn) .

Cụ thể, tôi có một tệp văn bản bao gồm 16 ký tự từ bảng chữ cái:

AD
DE
CB
ME
AE
PA
EB
AB
CN
NO
CE
MD
CK
GI
CL
GL
LE
CA
PH
GE
HB
CL
DE
CA
LF
CK
KD
CB
AB
BJ
JA
KE
KL
GI
HM
CI
DB
DE
AJ
FC

Mục tiêu: khôi phục nội dung tệp gốc một cách dễ dàng chỉ từ các giá trị băm CRC

Những câu hỏi của tôi:

  1. Nếu bạn có một tập hợp tệp nhỏ và hữu hạn phù hợp, ngẫu nhiên có các giá trị băm duy nhất, thì có, bạn có thể lấy tệp từ hàm băm, sử dụng hàm băm làm khóa.

    1.1 - Đầu vào nhỏ - điều gì làm giới hạn tổng số ký tự trong tệp văn bản khi thuật toán băm vẫn coi tệp là tốt khi thực hiện va chạm băm?

    PS Tất nhiên, dấu phân cách (dòng mới trong trường hợp này) có thể được loại bỏ, vì chỉ có hai giá trị (một cặp), nhưng điều đó không liên quan đến điều đó. Do đó, nó có thể được trộn lẫn với nhau, nhưng nó phải được ghép tương ứng - tức là "ADDECBME"

  2. Để đảm bảo rằng các xung đột băm không xảy ra đối với "thư viện" tệp của bạn, bạn có thể dành một "vùng trầy xước" (một khoảng trống ở đâu đó) cho các mục đích phá vỡ liên kết và tạo ra các giá trị tùy ý tạo ra một khóa mới, duy nhất cho toàn bộ tệp , mà bây giờ đã thay đổi.

    2.1. "Vùng cào" - nó có thể được xác định ở dạng thư mục mới không? Ý tôi là: sẽ có các thư mục từ 1-2000 với nhiều tệp được tạo cho mục đích so sánh tổng kiểm tra CRC.

    Hoặc nó phải được phân tách tốt hơn nhiều như chiến lược tập tin bị hỏng? Các tệp bị hỏng luôn cung cấp giá trị 00000000 CRC (tôi biết rằng từ WinRAR), vì vậy ... hoặc cách tiếp cận thứ 1 là tốt hơn?

  3. Đối với việc tạo tệp, các tệp sẽ được tạo ngẫu nhiên theo thông số kỹ thuật cụ thể do chúng không chứa mô hình có thể theo dõi được. Còn ý tưởng nào hay hơn không? Hãy nhớ rằng tôi muốn chỉ bảo tồn các giá trị CRC, không có gì hơn.

Thời gian không quan trọng, tất nhiên.

Bạn có thể giúp tôi?


Nó không thể được thực hiện. Xem xét điều này: trong khi không có khả năng, nhiều tệp duy nhất có thể tạo ra các giá trị băm giống hệt nhau. Do đó, không thể lấy hàm băm và biến nó thành một tệp duy nhất.
Kẻ giả mạo Twisty

@TwistyImpersonator - Về nguyên tắc bạn đúng: không có thuật toán ngược lại với thuật toán nhiều-một, nhưng do các ràng buộc trên dữ liệu gốc, có thể có một giải pháp duy nhất nếu biết độ dài của đầu vào , mặc dù tôi không biết làm thế nào để giải quyết nó ngoài sức mạnh vũ phu. Không biết giới hạn về độ dài, ngay cả với một bộ ký tự giới hạn, người ta có thể tiếp tục xây dựng các chuỗi vô thời hạn cho đến khi cuối cùng tổng kiểm tra sẽ được nhân đôi.
AFH

Đây là một câu trả lời về Bảo mật thông tin giải thích lý do đằng sau câu nói của tôi là không thể. @AFH
mạo Twisty

Nhưng câu hỏi này không nên chờ đợi. Đó là câu trả lời chắc chắn nhất.
Kẻ giả mạo Twisty

@TwistyImpersonator - Tôi đã nói có thể chỉ có một giải pháp dưới những ràng buộc nhất định. Để mở rộng sự tương tự trong liên kết của bạn, x%4=3không có giải pháp duy nhất, nhưng ràng buộc bổ sung xlà số nguyên tố trong khoảng từ 20 đến 30 có nghĩa là có một câu trả lời duy nhất. Trong trường hợp của người hỏi, có thể có một câu trả lời duy nhất trong các ràng buộc của người hỏi và giới hạn độ dài của tôi, nhưng điều này không được đảm bảo, và không có thuật toán nào để xác định nó, ngoại trừ lực lượng vũ phu (cần tới 16 ^ 80 hoặc ~ 2 * 10 ^ 98 vượt qua với 40 dòng ký tự của người hỏi).
AFH
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.