2009-06-08 12 views
13

¿Tiene PHP una función integrada para hacer hashes de cadena a enteros, algo que es difícil de revertir?php hash form string to entero

Ahora, sé que probablemente puedo conseguir lejos con hacer un MD5, y el tratamiento de una subcadena de ella como un número radix 16, pero estoy buscando algo incorporado.

Gracias.

Respuesta

30

creo que la mejor opción sería elegir un hash estándar [ya sea md5() o sha1()] para obtener un hash de la cadena y, a continuación, para obtener un hash entero, a un base_convert($hash, 16, 10) y que debe convertir su comprobación aleatoria, un hash entero.

Espero que entienda su problema correctamente.

2

No creo que encuentre nada incorporado para eso, pero su idea con md5() es bastante buena, en realidad. No podía imaginar por qué necesitarías algo más: no podría ser más rápido, no podría ser más estable ...

3

Creo que estás en el camino correcto para abordar este problema en dos pasos.

En primer lugar, probablemente debería seguir con el hash md5 para cumplir con su requisito "difícil de revertir".

En segundo lugar, podría tomar la salida md5 como entrada para su función "convertir esto a un entero".

para la segunda parte, ¿qué es lo que buscas exactamente? ¿Es que es un número entero? ¿O solo personajes imprimibles? Si solo busca convertir su hash en algo que pueda almacenar en una base de datos, transmitir por cable o alguna otra razón, la cadena md5 no funcionará, la función convertuuencode podría funcionar para usted: http://us.php.net/manual/en/function.convert-uuencode.php

Otra rotonda El enfoque ilegal sería obtener el valor binario de su hash y convertirlo a decimal utilizando: http://us.php.net/manual/en/function.bindec.php aunque, nunca lo he intentado y no estoy seguro de si funcionaría como usted quisiera.