Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

201
Vistas
¿Reversión de la función hash JS?

Tengo esta función que encontré para hacer hash de una cadena, he estado intentando durante algunas horas revertir esta función para tomar el hash y devolver la cadena. No estoy muy familiarizado con los cambios a la izquierda y a la derecha, ¿qué hacen exactamente en el caso de esta función y sería posible revertirla? He usado la cadena "luxor" para mis pruebas y obtengo "250B0C5E" como hash, pero no he podido recuperar una cadena que coincida con "luxor". Intenté cambiar los turnos de izquierda a derecha y mover el código de caracteres, pero aún no tuve éxito.

 function HashString(command) { let hash = 0; let string = command.toLowerCase(); for(let i=0; i < string.length; i++) { let letter = string[i].charCodeAt(); hash = hash + letter; hash += (hash << 10 >>> 0); hash ^= (hash >>> 6); hash = hash >>> 0 } hash += (hash << 3); if (hash < 0) { hash = hash >>> 0 } hash ^= (hash >>> 11); hash += (hash << 15); if (hash < 0) { hash = hash >>> 0 } return hash.toString(16).toUpperCase(); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

no puedes

Hashing es un proceso unidireccional. Cuando se trata de un proceso bidireccional, se trata de cifrado/descifrado . Tienen usos muy diferentes.

Esta es solo una función hash. Toma una cadena (una serie de valores de 16 bits) y produce un solo número (un valor de punto flotante de doble precisión IEEE-754, un "doble") que luego convierte en una cadena hexadecimal. Pero en algunos lugares durante ese proceso, el valor se reduce a 32 bits debido a los operadores de cambio de bits, que convierten el doble en un entero complemento a dos de 32 bits antes de hacer su trabajo y luego lo vuelven a convertir en un doble equivalente.

No se puede revertir ese proceso, es con pérdidas (pierde información). No hay espacio en un valor de 32 bits para almacenar la información necesaria para replicar una cadena de valores de 16 bits de cualquier longitud; podría manejar dos caracteres sin pérdida, o cuatro si limita el rango a caracteres donde el byte superior del valor de 16 bits es 0, pero eso es todo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda