Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

348
Views
¿Cómo generar una clave única para una matriz?

Me gustaría generar un identificador único basado en el contenido de una matriz. Mi enfoque inicial fue simplemente hacer:

 $key = md5(json_encode($array));

Sin embargo, me gustaría estar absolutamente seguro de que la clave es única y existe una posibilidad remota de que dos matrices distintas puedan producir el mismo hash md5. La idea actual es hacer:

 $key = base64_encode(json_encode($array));

Se garantiza que esto es único, pero produce una clave bastante larga. ¿Puedo usar sha512 o este tipo de hash también tiene el mismo potencial de colisión de claves que md5? ¿Hay alguna forma de generar una clave más corta que el método base64 que está 100% garantizado como único?

Para ser 100% claro, mi pregunta es: ¿Cómo puedo generar el identificador 100% único más corto posible para un conjunto de datos?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Si desea una clave única 100 % garantizada que coincida con su contenido, entonces la única forma es utilizar la longitud completa de su contenido. Puede usar la cadena json_encoded tal cual, o puede ejecutarla a través de base64_encode() o bin2hex() o similar si desea una cadena que no tenga caracteres "especiales". Cualquier función hash como md5, sha1, sha256, etc. obviamente no puede ser 100% única, porque tienen una longitud fija y debido al https://en.wikipedia.org/wiki/Pigeonhole_principle , necesariamente debe haber resultados no únicos para contenido de entrada que es más grande que el hash.

En la práctica, ahora se han publicado las colisiones md5 y sha1, pero existen funciones hash más sólidas donde no se conocen o esperan colisiones durante mucho tiempo, por lo que también podría considerar el uso de un algoritmo hash moderno y estar bastante seguro de que no tendrá ninguna. duplicados

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!