Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/09/2007, 01h47   #1
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut [SQL] SHA1 dans requête

Est-ce que la requête ci-dessous est juste?
Code :
SELECT * FROM table WHERE SHA1(id)='un_id_crypted'
Je l'ai testé dans un environnement PHP avec PDO et je n'obtiens aucune donné en retour alors que l'id existe bien dans la table SQL.

Merci de vos réponses.
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 17h53   #2
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut

Je ne pense pas que ce soit bon.
Le problème et que là, tu fais une comparaison entre une variable cryptée ('un_id_crypted') et le cryptage du nom de ton champ (SHA1(id) ).
A mon avis si le contenu de ton champ 'id' est déjà crypté, ton test doit être du genre:

Code :
1
2
3
 
 
SELECT * FROM TABLE WHERE id='un_id_crypted'
  Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 18h03   #3
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut ce n'est pas crypté

Dans la table, l'id en question n'est pas crypté. Et c'est donc justement ce que je cherche à faire: récupérer le champ, le crypter et le comparer à l'id_crypted.
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 19h49   #4
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
pour crypter ton id tu fais:

Code :
1
2
3
4
5
6
 
<?php
$id='test';
$un_id_crypte=SHA1($id);
$req="Update table set id=".$un_id_crypte." WHERE id='test'   ";
?>
  Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 19h52   #5
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut ce n'est pas un update

Ma requête est un SELECT et non un UPDATE
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 20h05   #6
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Je n'avais pas bien compris, désolé.

En sql, je ne pense pas que l'on puisse crypter un champ en utilisant SHA1 ou tout autre algo de cryptage...
Pour cela il te faut recupérer le champ, le mettre dans une variable, le crypter et ensuite le comparer.
  Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 20h10   #7
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut pas très cool

Mouais...

Donc la solution la plus propre serait de récupérer tous mes identifiants dans un tableau puis passer les id un à un, cryper et comparer à mon id crypté passé par GET alors...

Quelq'un a une meilleure solution? Car dans la table, il y a 300 000 lignes.
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 20h19   #8
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
C'est-à-dire qu'en général, on stocke la partie cryptée dans la base de données (ex: les mots de passe).

Le but est de récupérer le mot de passe provenant d'un formulaire, de le crypter et de le comparer à celui de la base de données.
  Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 20h30   #9
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut oui ça l'est

Les mots de passes sont cryptés dans la table mais pas les identifiants. J'ai pas trouvé d'autres solutions de passer l'identifiant par GET et donc je veux absolument le crypter. Pour les autres manipulations je ne le crypte jamais.
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 20h33   #10
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
On n'est pas trop dans le bon forum pour ça, mais au lieu de passer l'id par GET pourquoi est-ce que tu ne crées pas un cookie ou une session et de récupérer les infos par tableau $_COOKIE ou $_SESSION.

Tu n'aurais plus cette opération de cryptage.
  Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 20h43   #11
Membre chevronné
 
David DRAPEAU
Consultant OpenERP
Inscription : juin 2003
Messages : 807
Détails du profil
Informations personnelles :
Nom : David DRAPEAU

Informations professionnelles :
Activité : Consultant OpenERP

Informations forums :
Inscription : juin 2003
Messages : 807
Points : 728
Points : 728
Envoyer un message via MSN à zyongh Envoyer un message via Skype™ à zyongh
Par défaut Trop de sessions

Si je le faisais par session, sur une recherche qui obtiendrait 100000 résultats, imagine la quantité mémoire qui serait utilisée. Tout ça pour voir un identifiant en détail.

Merci pour votre aide à tous. Je vais mettre résolu et je vais essayer de le faire autrement. Merci encore.
zyongh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h09.


 
 
 
 
Partenaires

Hébergement Web