php - password_bcrypt - password_hash
Hashing una matriz completa de PHP en un valor Ășnico (5)
¿Qué hay de serializar?
$filename = md5(serialize($someArray));
Esta pregunta ya tiene una respuesta aquí:
Buscando una manera de producir un hash seguro de nombre de archivo de una matriz de PHP dada. Actualmente estoy haciendo:
$filename = md5(print_r($someArray, true));
... pero se siente "hacky" usando print_r () para generar una cadena única para cada matriz.
¿Alguna idea brillante para una forma más limpia de hacer esto?
EDITAR Bien, parece que todos piensan que serializar es más adecuado para la tarea. ¿Alguna razón por qué? No estoy preocupado por la posibilidad de recuperar información sobre la variable después de hash (lo cual es bueno, ¡ya que es un hash de una sola dirección!). Gracias por las respuestas!
Alternativamente, puedes usar json_encode
El uso de serialize()
puede ser más conservador si desea conservar el tipo, etc.
Use md5(serialize())
lugar de print_r()
.
El propósito de print_r()
es principalmente como una función de depuración y está formateado para visualización de texto sin formato, mientras que serialize()
codifica una matriz o representación de objetos como una cadena de texto compacta para persistencia en la base de datos o almacenamiento de sesión (o cualquier otro mecanismo de persistencia).
serialize()
debería funcionar bien.
Tiene la ventaja adicional de invocar el método mágico __sleep
en objetos y ser el método de serialización más limpio disponible en PHP en general.