Pregunta

Estoy trabajando en un proyecto en el que tengo que utilizar un poco de función hash para hacer una cadena hash. Esta cadena de hash debe ser único consta de 6 a 13 caracteres (longitud fija).

Yo uso una base de datos para almacenar datos, por lo que para cada registro, tengo un identificador único. Quiero utilizar este identificador único para hacer una cadena de hash (para lograr la unicidad de la cadena de hash resultado).

necesito esta cadena hash para consta de sólo caracteres válidos (0-9 a-z A-Z).

¿Qué función hash se debe utilizar para lograr este objetivo? ¿Cómo puedo generar este tipo de cadenas de hash?

añadió más tarde: Quiero generar esta cadena y pasarlo al usuario, para que pueda volver más tarde para editar la entrada. cualquier otra idea es aceptable.

¿Fue útil?

Solución

El uso de la cripta:

$hash = crypt("somevaluetohash", $uniqueid);

El identificador único es una sal por lo que puede generar valores diferentes en función de la ID. Así que si un usuario tiene una contraseña de "somevaluetohash" y otro usuario tenía la misma, terminando el hash no sería el mismo.

Otros consejos

<?php
  $id;
  $hash_full = md5($id); //hash('sha256', $id);
  $hash_cropped = substr($hash_full, 0, 6);
?>

de hash () para otros algoritmos hash.

Pero ¿qué es lo que necesita esta algoritmos hash? Para mí, no tiene mucho sentido para generar un hash de la identificación, no podía que acaba de utilizar el ID de su lugar?

¿Realmente tiene que ser una suma de comprobación criptográfica? O es adecuada una suma de comprobación simple? Es la misma no es adecuado?

clave principal base de datos proporcionada

Tienes un montón de opciones, desde los más simples crc32 a más avanzado sha512 .

Sin embargo, si usted está haciendo esto para alguna aplicación específica (como sistema de archivos hash , o encontrar en las inmediaciones objetos usando algunas métricas), entonces' re va a tener que especificar más de su problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top