2009-10-23 5 views
6

J'essaie d'obtenir un hachage MD5 d'une valeur dans ColdFusion. J'ai essayé ce code en utilisant la fonction Encrypt :Comment puis-je obtenir un hachage MD5 dans ColdFusion?

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

Mais je reçois une erreur:

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

Comment puis-je choisir un fournisseur de sécurité différent?


Oui, je sais que MD5 est pas un algorithme de cryptage, mais les gens ColdFusion ne semblent pas savoir que parce qu'ils liste comme un algorithme pris en charge pour la fonction Encrypt. Modifier: Je n'ai pas vu la fonction Hash intégrée mais j'ai vu le fait que Encrypt répertorie md5 et sha comme des algorithmes prétendument supportés, donc j'ai pensé (à tort, il s'est avéré) que c'était juste comme ça que vous avez CF.

+3

est Hashage pas le cryptage. Le cryptage est, par définition, annulable. Hacher devrait être assez difficile pour l'annuler est impraticable. Si vous devez récupérer les données d'origine, utilisez le chiffrement. Si vous devez vérifier des données (comme des fichiers ou des mots de passe), le hachage est la solution. Quoi qu'il en soit, utilisez la fonction hash() pour MD5, comme l'a souligné Eddie. –

+0

@Ben Doom: Je comprends parfaitement la différence entre le hachage et le cryptage. J'ai même dit comme tel dans ma note de bas de page. Je n'ai juste pas vu la fonction "hash" et ai trouvé que "encrypt" prétendait supporter MD5, SHA, et quelques autres algorithmes de hachage, donc j'ai pensé que c'était exactement comme ça que vous deviez le faire dans ColdFusion. – Kip

Répondre

14

Si vous voulez un hachage ne devriez-vous pas essayer le hash function dans ColdFusion? Je finis par utiliser les algorithmes SHA ou SHA-256, mais le MD5 devrait fonctionner en utilisant cette fonction. Je n'utiliserais crypter que si vous souhaitez décrypter quelque temps plus tard. Pour des choses comme les mots de passe, vous ne voulez pas les décrypter, utilisez plutôt la fonction de hachage.

+0

Il devrait omettre l'attribut SHA (ou utiliser MD5, bien que ce soit par défaut) pour obtenir le résultat qu'il veut. Pour les choses * autres que la vérification des fichiers, j'utilise aussi SHA. –

+0

merci, je n'ai pas vu la fonction de hachage quand je naviguais dans la liste, et j'ai vu MD5 dans la fonction de cryptage, donc je pensais que comment vous l'avez fait dans cf. – Kip

7

Utilisez CF intégré dans la fonction "Hash". Il prend le format suivant:

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

Les travaux suivants:

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

oups, n'a même pas vu cette fonction. Merci! – Kip