Rechercher : dans
Par :

Crypter champs sql md5

Dernière réponse le 3 jun 2008 à 13:46:41 sangokudu92, le 2 jun 2008 à 12:22:25 
 Signaler ce message aux modérateurs

Bonjour,
je voudrai savoir si la syntaxe suivante est correct pour crypter une propriété sql, car chez moi sa ne marche pas:

$pass = md5 ($_POST['pass']);


Je ne souhaite pas utilisé la fonction PASSWORD.
Merci
Configuration: Windows XP
Firefox 2.0.0.12

Meilleures réponses pour « Crypter champs sql md5 » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
Télécharger Crypt Edit VoirCrypt Edit est un puissant éditeur de texte en remplacement à Windows NotePad et WordPad. Il comprend des fonctions intéressantes telles que la cryptographie (algorithmes RC4, MD5). Il peut également exporter facilement les documents au format...
SQL - Création d'index VoirQu'est-ce qu'un index? Un index est un objet complémentaire (mais non indispensable) à la base de données permettant d'"indexer" certaines colonnes dans le but d'améliorer l'accès aux données par le SGBDR, au même titre qu'un index dans un livre ne...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
SQL - Mise à jour d'informations VoirLe SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste à: ajouter des tuples modifier des tuples existants ou bien supprimer des tuples Insertion de...

1

Brachior, le 2 jun 2008 à 12:43:02
  • +1

Normalement oui

$pass = MD5($_POST['pass']);
c'est la bonne syntaxe ^^
qu'est ce qui ne fct pas chez toi ? :)
( penses a avoir un champs d'une taille suffissante dans ta base de données ;) )
et moi je te conseille vivement de crypter en SHA1 ^^
http://fr.wikipedia.org/wiki/MD5

Répondre à Brachior

2

sangokudu92, le 2 jun 2008 à 13:51:44
  • +1

Merci, mais sa ne marche toujours pas. Le client s'inscrit via un formulaire, et quand je regarde dans la base de donnée, le mot de pass est clair. Je ne comprend pas pourquoi. Voila le script de la page inscription:

$pseudo_clt = $_POST['pseudo_clt'];
$nom_clt = $_POST['nom_clt'];
$pseudo_clt = $_POST['pseudo_clt'];
$pass = SHA1($_POST['pass']);

if(isset($_POST['pseudo_clt']) && $_POST['pseudo_clt']!='' && isset($_POST['pass']) && $_POST['pass']!='')
{...}

Répondre à sangokudu92

3

sangokudu92, le 2 jun 2008 à 15:23:37

Up :S

Répondre à sangokudu92

4

Brachior, le 2 jun 2008 à 17:30:17

Dsl de te dire ca mais .. c'est debile c'que tu fais xD ^^
tu crée la variable $_POST et apres tu regardes si elle existe xD ^^
tu devrais ecrire :

if(isset($_POST['pseudo_clt']) && $_POST['pseudo_clt']!='' && isset($_POST['pass']) && $_POST['pass']!='')
{
$pseudo_clt = $_POST['pseudo_clt'];
$nom_clt = $_POST['nom_clt'];
$pseudo_clt = $_POST['pseudo_clt'];
$pass = SHA1($_POST['pass']);
...}
ensuite tu peux me passer ta requete plutot ? :) ^^

Répondre à Brachior

5

sangokudu92, le 3 jun 2008 à 09:59:51

Merci pr ta reponse mais je n'ai pas vu la difference ac mon code :S^^.
Voila ma requete:

//Voir si l'utilisateur existe déjà
$req1 = mysql_query("SELECT * FROM clients WHERE pseudo_clt='".$pseudo_clt."'");

if(mysql_fetch_row($req1)!=NULL)
{
     echo $msg_pseudo;
}
else
{
   $req2 = mysql_query("INSERT INTO clients (nom_clt,pseudo_clt,pass) VALUES ('".$nom_clt."','".$pseudo_clt."','".$pass."')") or die(mysql_error());
echo $msg_OK;
}

Répondre à sangokudu92

6

Brachior, le 3 jun 2008 à 12:28:00

La difference c'est que toi tu test l'existence d'une variable que tu viens de créer ..
je m'explique .. quand tu fais :
$pass = $_POST['pass'];
si la variable $_POST['pass'] n'existe pas .. elle sera créée et contiendra rien ^^
et j'viens d'me rendre compte que t'as 2fois la lign : $pseudo_clt = $_POST['pseudo_clt']; ^^
et ta variable $req2 ne sert a rien ^^

enfin bn ^^ y a pas d'raisons que ca ne fct pas Oo
a moins qu'un de tes champs ( ou plusieurs ^^ ) soient mal déclaré
( par exemple si tu as mis un int pour le password ou un truc du genre )
ou encore qu'un de tes champs manque a l'appel ^^

essayes ta requete directement sur phpmyadmin ^^

Répondre à Brachior

7

 sangokudu92, le 3 jun 2008 à 13:46:41

Mon champ pass est défini en varchar(32), et la requête marche tres bien ds phpmyadmin.
La $req2 sert a entrer les données de l'utilisateur dans la base, et la req1 sert a voir si l'utilisateur est deja enregistrer.
En ce qui concerne la ligne pseudo, c'est juste une mauvaise manip^du copier/coller^^.
Si tu remarque dans le code suivant:

$pass = $_POST['pass'];
la variable $pass reprend le contenu du formulaire d'inscription (le champ du mot de pass) d'où le $_POST.

Répondre à sangokudu92