Los hashes reversibles no son compresión
Incluso los hashes que podemos revertir no se pueden usar como compresión. Suponiendo que podríamos revertir sha256 no haría que la compresión actual se vuelva obsoleta, porque hay infinitos archivos grandes, pero infinitamente muchos valores de sha256 (2 ^ 256), por lo que infinitos archivos grandes tendrán el mismo hash sha256, esto se conoce como principio de casillero . Si invierte el hash, obtendrá uno o todos de los posibles archivos grandes, pero no puede garantizar o esperar de manera realista que este sea el exacto que comprimió.
Para un ejemplo trivial, si desea comprimir archivos de 33 bytes (264 bits), hay 2 ^ 256 hashes sha256 diferentes, y 2 ^ 264 posibles archivos diferentes de 33 bytes, en promedio cada 2 ^ 8 Los archivos tendrán el mismo hash sha256. Si bien es improbable que accidentalmente sufras una colisión (posibilidad 1/2 ^ 256), también es poco probable que en un "revés" obtengas accidentalmente el mismo archivo que comprimiste (posibilidad 1/2 ^ 8). En la criptografía, decir "a prueba de colisiones" no significa que no haya colisiones (por supuesto que hay, debe haber) sino que las colisiones son difíciles / lentas de encontrar y manipular.