Normalmente lo almaceno en número hexadecimal pero me doy cuenta de que podría ahorrar la mitad del espacio si lo almacenaba en binario dentro de MySQL. ¿Hay algún problema que deba tener en cuenta si decido almacenarlo en formato binario?¿Debería almacenarse hash de contraseña en número binario o hexadecimal?
Respuesta
¿Cuántas contraseñas espera almacenar? ¿La mitad del espacio significa mucho para ti realmente?
Probablemente esté representando las contraseñas en forma hexadecimal en su aplicación, por lo que almacenarlas en formato binario agrega otra capa de complejidad y gastos generales de procesamiento cuando realiza cualquier operación en esas contraseñas.
Mi opinión es que debe almacenarlos de una manera que sea conveniente para usted para trabajar, en lugar de uno que le ahorra pequeñas cantidades de espacio.
Editar:
El ir a hacer algunas suposiciones y tomar la oportunidad de ayudar a un poco más lejos.
Dado que sus contraseñas están en hexadecimal, supongo que no está utilizando crypt
, y si no lo está, debería hacerlo. En el peor de los casos, estás usando md5 ... y Dios está matando gatitos.
Ya hay muchas preguntas y respuestas sobre bcrypt en el desbordamiento de pila, por lo que no volveré a cubrir la información aquí.
La pregunta SHA512 vs. Blowfish and Bcrypt es un buen lugar para empezar.
también tienen una lectura de un par de publicaciones en el blog @ircmaxell 's sobre el tema:
Desde un punto de vista de la usabilidad, es probablemente la mejor manera de almacenar el hash como un hexadecimal Almacenarlos en medios binarios significa que se necesita un paso más para comparar una entrada de texto sin formato con la contraseña almacenada. También tiene el potencial de agregar una capa de confusión a cualquier persona que trabaje en su proyecto después de que haya avanzado. "¿Por qué esta contraseña está almacenada en binario?"
Binary es muy molesto si no está codificado correctamente, y como un lado negativo adicional, no se puede ver o copiar-pegar fácilmente. – tadman
- 1. ¿Debería almacenarse el resultado getSystemService (...)?
- 2. Conversión de un número hexadecimal a binario en ruby
- 3. Cómo imprimir literales enteros en binario o hexadecimal en haskell?
- 4. Imprimir variables en formato hexadecimal o decimal
- 5. Convertir hexadecimal a binario en MySQL
- 6. ¿Debería MS Report Cache Files (* .rdl.data) almacenarse en Source Control?
- 7. Formateo de número hexadecimal en Javascript
- 8. C++ formato de número hexadecimal
- 9. MySQL binario contra no binario para identificadores hash
- 10. Formato de contraseña no válido o algoritmo de hash desconocido
- 11. Representación del número binario
- 12. ¿Debe la sal para una contraseña Hash ser "hash" también?
- 13. Convirtiendo un valor binario a hexadecimal en ruby
- 14. Ruby: contar el número de 1 de un número binario
- 15. Número hexadecimal generado aleatoriamente en C#
- 16. u en número hexadecimal C/C++
- 17. Tabla hash vs Árbol binario balanceado
- 18. Erlang io: formateo de un binario a hexadecimal
- 19. transformar una información hexadecimal a binario utilizando comandos de Linux
- 20. Analizador binario o serialización?
- 21. php: ¿número solo hash?
- 22. ¿Cómo migrar un hash de contraseña?
- 23. Número esperado de colisiones hash
- 24. Expresión regular para un número hexadecimal?
- 25. Convertir hash para una cadena de caracteres hexadecimal
- 26. HTTP Digest con contraseña almacenada hash
- 27. Bash: escribir número entero de archivo binario
- 28. ¿Conectarse a MySQL con contraseña hash?
- 29. ¿Cómo convierto una cadena que se parece a un número hexadecimal a un número hexadecimal real en php?
- 30. Convierta un número en el valor hexadecimal en .NET
Buen punto, tendrías que descomprimirlos en hexadecimal cada vez que extraes el registro de la base de datos. – Xeoncross
O puede empaquetar la contraseña que desea comparar con el hash guardado. No creo que sea muy difícil. Sin embargo, tampoco creo, que no valga la pena. – KingCrunch
También he encontrado un problema en el pasado con un DB mal descargado que usaba campos binarios, requería tanto trabajo para restaurarlo. – Leigh