Có một lớp các thuật toán băm, cho dù là lý thuyết hay thực tế, sao cho một thuật toán trong lớp có thể được coi là 'phản xạ' theo một định nghĩa được đưa ra dưới đây:
- hash1 = algo1 ("văn bản đầu vào 1")
- hash1 = algo1 ("văn bản đầu vào 1" + hash1)
Toán tử + có thể được nối hoặc bất kỳ thao tác được chỉ định nào khác để kết hợp đầu ra (hash1) trở lại đầu vào ("văn bản đầu vào 1") để thuật toán (algo1) sẽ tạo ra kết quả chính xác như nhau. tức là va chạm vào đầu vào và đầu vào + đầu ra. Toán tử + phải kết hợp toàn bộ cả hai đầu vào và thuật toán có thể không loại bỏ một phần của đầu vào.
Thuật toán phải tạo ra entropy cao trong đầu ra. Nó có thể, nhưng không cần, khó mã hóa để đảo ngược đầu ra trở lại một hoặc cả hai đầu vào có thể.
Tôi không phải là một nhà toán học, nhưng một câu trả lời tốt có thể bao gồm một bằng chứng về lý do tại sao một loại thuật toán như vậy không thể tồn tại. Đây không phải là một câu hỏi trừu tượng, tuy nhiên. Tôi thực sự quan tâm đến việc sử dụng một thuật toán như vậy trong hệ thống của mình, nếu nó tồn tại.
Đây là bản sao của câu hỏi được đăng lần đầu tiên tại /programming/4823680/reflexive-hash