Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

202
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda