¿Hay alguna forma de generar un hash de una cadena para que el hash en sí tenga una longitud específica? Tengo una función que genera hashes de 41 bytes (SHA-1), pero necesito que sea de 33 bytes como máximo (debido a ciertas limitaciones de hardware). Si trunco el hash de 41 bytes a 33, probablemente (¡ciertamente!) Perdí la singularidad.Hash de una cadena de longitud específica
O en realidad, supongo que un algoritmo MD5 podría encajar muy bien, si pudiera encontrar algún código C para uno con su ayuda.
EDIT: Gracias a todos por las respuestas rápidas y bien informadas. He elegido ir con un hash MD5 y me queda bien para mi propósito. La singularidad es un tema importante, pero no espero que la cantidad de hashes sea muy grande en un momento dado; estos hashes representan servidores de software en una LAN doméstica, por lo que al máximo habría 5, tal vez 10 en ejecución.
Gracias, lo intentaré ... – dennisV
Su BTW es la verdadera respuesta. Si le falta la memoria, ¡no almacene sus hashes como cadenas hexagonales! –
md5 es 'más roto' que SHA1 y sha256. Sería mejor truncar y usar los 12 bytes adicionales de entropía. – Aaron