2009-10-23 25 views
6

Estoy tratando de obtener un hash MD5 de un valor en ColdFusion. Probé este código usando la función Encrypt :¿Cómo puedo obtener un hash MD5 en ColdFusion?

<cfscript> 
val = 1117; 
md5 = Encrypt(val, 0, "MD5", "Hex"); 
</cfscript> 

Pero me da un error:

The MD5 algorithm is not supported by the Security Provider you have chosen.

¿Cómo se puede elegir un proveedor de seguridad diferente?


Sí, sé que MD5 no es un algoritmo de cifrado, pero no parece que la gente de ColdFusion saber que debido a que la lista como un algoritmo compatibles con la función de cifrado. Editar: No vi la función incorporada Hash, pero vi el hecho de que Encrypt enumera md5 y sha como algoritmos supuestamente compatibles, así que pensé (incorrectamente resulta) que así era como se obtenía un hash en CF.

+3

Hashing no está cifrado. El cifrado es, por definición, imposible de copiar. Hashing debería ser lo suficientemente difícil como para deshacerlo es poco práctico. Si necesita recuperar los datos originales, use el cifrado. Si necesita verificar datos (como archivos o contraseñas), el hash es el camino a seguir. Independientemente, utilice la función hash() para MD5, como ha señalado Eddie. –

+0

@Ben Doom: entiendo completamente la diferencia entre el hash y el cifrado. Incluso dije eso en mi nota al pie. Simplemente no vi la función "hash" y descubrí que "encrypt" afirmaba que era compatible con MD5, SHA y algunos otros algoritmos hash, por lo que pensé que era exactamente lo que tenía que hacer en ColdFusion. – Kip

Respuesta

14

Si quiere un hash no debería probar el hash function en ColdFusion? Termino usando los algoritmos SHA o SHA-256, pero el MD5 debería funcionar usando esa función.

hash(saltTheHash & trim(UserPassword), "SHA") 

Solo utilizaría encriptar si desea descifrar algún tiempo después. Para cosas como contraseñas, no desea descifrarlas, así que use la función hash.

+0

Debe omitir el atributo SHA (o usar MD5, aunque es el predeterminado) para obtener el resultado que desea. Sin embargo, para cosas * otras * que no sean la verificación de archivos, uso SHA también. –

+0

gracias, no vi la función hash cuando estaba navegando por la lista, y vi MD5 en la función de cifrado, así que pensé que cómo lo hiciste en cf. – Kip

7

Utilice CF incorporado en la función "Hash". Se necesita el siguiente formato:

Hash(string [, algorithm [, encoding ]]) 

las siguientes obras:

<cfscript> 
    val = 1117; 
    md5 = Hash(val, "MD5"); 
</cfscript> 
+0

Vaya, ni siquiera vi esa función. ¡Gracias! – Kip