Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BASE DE HASH MD5


Information sur la source

Catégorie :Base de données Classé sous : md5, hash, base, crypte, decrypte Niveau : Débutant Date de création : 28/04/2008 Date de mise à jour : 29/04/2008 14:03:26 Vu : 3 816

Note :
3,5 / 10 - par 2 personnes
3,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

-----------------------------
Projet: db hash md5
Author: 0x0syscall
Team: Haksyn Security Team
Date: 28/04/08
-----------------------------

Création d'un base de donnée de hash md5.
 

Source

  • ------------------------------
  • Création de la table sql
  • ------------------------------
  • CREATE TABLE IF NOT EXISTS `table_md5` (
  • `ID` mediumint(8) unsigned NOT NULL auto_increment,
  • `mot` varchar(300) collate latin1_general_ci NOT NULL,
  • `sum` varchar(32) collate latin1_general_ci NOT NULL,
  • UNIQUE KEY `ID` (`ID`)
  • ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1215 ;
  • ------------------------------
  • fin de la table sql
  • ------------------------------
  • ------------------------------
  • index.php
  • ------------------------------
  • //crypte le mot en md5 et si il n'existe pas dans la base de donnée il l'enregistre
  • <?
  • echo ' <form method="post" action="index.php"> ';
  • echo ' Mot : <input type="text" name="md5" value="'.$md5.'"> ';
  • echo " <input type='submit' name='Submit' value='Crypter'> ";
  • echo ' </form> ';
  • echo '<br> </br>';
  • if( isset( $md5 ) and ($md5 != '') ){ echo ' <br>Sum md5 : '.md5( $md5 ); }
  • echo '</p></font>';
  • $db = mysql_connect('sql.server', 'sql.login', 'sql.pwd');
  • mysql_select_db('sql.db',$db);
  • $sql_query = "SELECT mot FROM table_md5 where mot='$md5'";
  • $result = mysql_query($sql_query);
  • if(!$result)
  • return;
  • if(mysql_num_rows($result) == 0)
  • {
  • $req = mysql_query('SELECT * FROM table_md5');
  • $res = mysql_num_rows($req);
  • mysql_query("INSERT INTO table_md5 (ID, mot, sum) VALUES ('', '$md5', '$md5')");
  • mysql_query("UPDATE `table_md5` SET `sum` = MD5( '$md5' ) WHERE `mot` =('$md5') LIMIT 1 ;");
  • if(!$result)
  • return;
  • }
  • else
  • {
  • echo '';
  • }
  • mysql_close($db);
  • ?>
  • ------------------------------
  • fin index.php
  • ------------------------------
  • ------------------------------
  • decrypt_md5.php
  • ------------------------------
  • <form method="post" action="decrypt.php">
  • md5 : <input type="text" name="md5">&nbsp;&nbsp;<input type='submit' name='Submit' value='Decrypter'></br>
  • </form>
  • <?php
  • $db = mysql_connect('sql.server', 'sql.login', 'sql.pwd');
  • mysql_select_db('sql.db',$db);
  • $req = mysql_query('SELECT * FROM table_md5');
  • $res = mysql_num_rows($req);
  • echo '<br> </br>';
  • echo 'Il y a '.$res.' mots de passe dans la base de donnée';
  • mysql_close($db);
  • ?>
  • ------------------------------
  • fin decrypt_md5.php
  • ------------------------------
  • ------------------------------
  • decrypt.php
  • ------------------------------
  • <?php
  • $db = mysql_connect('sql.server', 'sql.login', 'sql.pwd');
  • mysql_select_db('sql.db',$db);
  • $req = mysql_query("SELECT * FROM table_md5 WHERE `sum` =('$md5') ");
  • $resultat = mysql_fetch_array($req);
  • echo '<center>';
  • echo '<table border="0" cellpadding="0" cellspacing="0" width="50%" height="95">';
  • echo ' <tr>';
  • echo ' <td width="100%" height="95">';
  • echo '<p><font color="#ffffff" size="2">';
  • echo '[+]Password => ';
  • echo htmlentities($resultat["mot"]);
  • echo '</br>';
  • echo '[+]Checksum => ';
  • echo htmlentities($resultat["sum"]);
  • echo '<br> </br>';
  • echo '[ <a href="decrypt_md5.php">Back</a> ]';
  • echo '</p></font>';
  • echo ' </td>';
  • echo ' </tr>';
  • echo '</table>';
  • echo '</center>';
  • mysql_close($db);
  • ?>
  • ------------------------------
  • fin decrypt.php
  • ------------------------------
------------------------------
Création de la table sql
------------------------------

CREATE TABLE IF NOT EXISTS `table_md5` (
  `ID` mediumint(8) unsigned NOT NULL auto_increment,
  `mot` varchar(300) collate latin1_general_ci NOT NULL,
  `sum` varchar(32) collate latin1_general_ci NOT NULL,
  UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1215 ;

------------------------------
fin de la table sql
------------------------------


------------------------------
index.php
------------------------------
//crypte le mot en md5 et si il n'existe pas dans la base de donnée il l'enregistre 
<?
echo ' <form method="post" action="index.php"> ';
echo ' Mot : <input type="text" name="md5" value="'.$md5.'"> ';
echo " <input type='submit' name='Submit' value='Crypter'> ";
echo ' </form> ';
echo '<br> </br>';
if( isset( $md5 ) and ($md5 != '') ){ echo ' <br>Sum md5 : '.md5( $md5 ); }
echo '</p></font>';

$db = mysql_connect('sql.server', 'sql.login', 'sql.pwd');
mysql_select_db('sql.db',$db); 

    $sql_query = "SELECT mot FROM table_md5 where mot='$md5'";
    $result = mysql_query($sql_query);
	if(!$result)
        return; 

    if(mysql_num_rows($result) == 0)
    { 
	$req = mysql_query('SELECT * FROM table_md5');          
	$res = mysql_num_rows($req);   
	mysql_query("INSERT INTO table_md5 (ID, mot, sum) VALUES ('', '$md5', '$md5')");
	mysql_query("UPDATE `table_md5` SET `sum` = MD5( '$md5' ) WHERE `mot` =('$md5') LIMIT 1 ;");
 	if(!$result)
            return;
    } 
    else
    {
	echo '';
    }


mysql_close($db);

?>
------------------------------
fin index.php
------------------------------

------------------------------
decrypt_md5.php
------------------------------
<form method="post" action="decrypt.php">
md5 : <input type="text" name="md5">&nbsp;&nbsp;<input type='submit' name='Submit' value='Decrypter'></br>
</form>
<?php
$db = mysql_connect('sql.server', 'sql.login', 'sql.pwd');
mysql_select_db('sql.db',$db);                    
$req = mysql_query('SELECT * FROM table_md5');          
$res = mysql_num_rows($req);
echo '<br> </br>';                    
echo 'Il y a '.$res.' mots de passe dans la base de donnée';  
mysql_close($db);
?>
------------------------------
fin decrypt_md5.php
------------------------------

------------------------------
decrypt.php
------------------------------

<?php
$db = mysql_connect('sql.server', 'sql.login', 'sql.pwd');
mysql_select_db('sql.db',$db);  
                  
$req = mysql_query("SELECT * FROM table_md5 WHERE `sum` =('$md5') ");
$resultat = mysql_fetch_array($req);


echo '<center>';
echo '<table border="0" cellpadding="0" cellspacing="0" width="50%" height="95">';
echo '  <tr>';
echo '    <td width="100%" height="95">';
echo '<p><font color="#ffffff" size="2">';
echo '[+]Password  => ';
echo 		htmlentities($resultat["mot"]);
echo '</br>';
echo '[+]Checksum => ';
echo 		htmlentities($resultat["sum"]);
echo '<br> </br>';
echo '[ <a href="decrypt_md5.php">Back</a> ]';
echo '</p></font>';
echo '    </td>';
echo '  </tr>';
echo '</table>';
echo '</center>';


mysql_close($db);
?>
------------------------------
fin decrypt.php
------------------------------

Historique

29 avril 2008 14:03:26 :
changement de niveau

Commentaires et avis

signaler à un administrateur
Commentaire de malik7934 le 28/04/2008 17:35:48

Mouais... 2^128 entrées... je t'explique même pas le temps de calcul tendant vers très très loin! Cela fait longtemps qu'il a été montré/expliqué que de telles tables n'ont pas de sens.

En plus, avec des "SELECT *", on n'est pas sorti de l'auberge!

Non, ça n'a pas de sens...

signaler à un administrateur
Commentaire de iow4 le 28/04/2008 17:47:17

Je suis d'accord, l'utilisateur est de plus en plus prudent, la chance pour que son pass soit dedans est faible...

Surtout que les admins aussi deviennent de plus en plus précautionneux par exemple en cryptant avec un salt.

signaler à un administrateur
Commentaire de malik7934 le 28/04/2008 17:49:46

juste! Bcp font des trucs genre "md5(md5('xy').'ab')" en changeant chaque fois le "ab", mais même au-delà de cela, remplir sa table est "sans fin"

signaler à un administrateur
Commentaire de neigedhiver le 29/04/2008 10:11:35

Pis y'a même des sites qui utilisent sha1 ou d'autres fonctions de hashage, alors bon...

signaler à un administrateur
Commentaire de 0x0syscall le 29/04/2008 11:42:30

C'est mon premier post sur ce site et je vois que vous êtes plutôt dur ^^
Mais bon c'est pas un problème au contraire ! C'est vrai quand dans le fond créer une base de hash md5 n'a plus grand intérêt... Bref la prochaine fois je posterais quelque chose de plus   innovant. Voila voila et merci à tous ++


0x0syscall,

signaler à un administrateur
Commentaire de amezghal le 29/04/2008 13:49:18

Niveau : initié....

signaler à un administrateur
Commentaire de iow4 le 29/04/2008 18:13:59 2/10

Ne te décourage pas...
Mes premiers codes aussi étaient dans ce style :)

Ton script aurait pu être un peu plus travaillé quand même :
- le tag d'inclusion de php est "<?php" il vaut mieux éviter les short_tag
- dans index.php il y a une variable qui traine "$md5" d'ou sort elle ? il faut faire attention sur certaines configs $md5 peut être $_GET['md5'] une données modifiable par l'utilisateur
- à quoi sert req dans l'index.php à part à faire ramer le serveur vu le nombre de données à sélectionner ?

Il y a plein de petites choses comme ça...

signaler à un administrateur
Commentaire de kankrelune le 02/05/2008 13:01:47

Je ne reviendrais pas sur l'utilité du script cela a déja été débattu et là n'est pas le sujet...

Les multiples echo c'est pas beau... il faudrait plus de rigueur dans les normes de codage que tu utilise un coup tu met tes chaines entre ' un coup tu les met entre " d'une manière générale utilise les simples quotes plutot que les doubles quotes... .. .

else
{
   echo '';
}

là j'avoue ne pas comprendre l'utilité de ton else... .. . ;o)

tu devrais externaliser la routine de connection à ta BDD dans un fichier à part car là si tu change de mdp de connexion ou le nom de ta table tu devra le changer dans tous tes fichier ce qui est inutile et fastidieux... j'irais même plus loin plutot que de faire 3 fichiers tu pourrais tout mettre dans le même fichier et gérer les actions en fonction d'un argument passé en paramètre.

Sinon

$req = mysql_query('SELECT * FROM table_md5');
$res = mysql_num_rows($req);

>>

$req = mysql_query('SELECT COUNT(ID) FROM table_md5');
$res = mysql_fetch_rows($req);
echo $res[0];

sera plus adapté et chargera moins ton serveur SGDB

voili voilou... j'ai pas regardé en détail mais voila ce qui me saute au yeux... je met 5/10 car je trouve qu'il y a des bonnes bases... .. .

Bon courage et bonne continuation

@ tchaOo°

signaler à un administrateur
Commentaire de kankrelune le 02/05/2008 17:46:01 5/10

Ah j'ai oublié...

mysql_query("INSERT INTO table_md5 (ID, mot, sum) VALUES ('', '$md5', '$md5')");
mysql_query("UPDATE `table_md5` SET `sum` = MD5( '$md5' ) WHERE `mot` =('$md5') LIMIT 1 ;");

pourquoi faire une insertion dans ta bdd et ensuite la mettre à jour... .. ?

Ca serait pas plus simple de directement faire ton insertion avec les bonnes valeurs... .. ?

@ tchaOo°

signaler à un administrateur
Commentaire de hazkaal le 26/06/2008 11:19:15

Bonjour,
Je  n'arrive pas à faire fonctionner ta source...
Pourtant tout est installé correctement, aucun mot ne s'enregistre dans la base de données et le cryptage n'affiche aucun résultat o.o

++

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Base de hash MD5 [ par hazkaal ] Bonjour,Voici une base de hash MD5 que j'ai développé en PHP.On peut :    -ajouter un mot dont sa valeur md5 sera ajoutée dans un dictionnaire   -rech Encodage [ par perekro ] Bonjour à tous.Je vous explique ma situation :     j'ai une base base de données dans laquelle sont stocké des mots de passe cryptés mais la est le pr Garder un ressource id en changeant de bdd [ par lowkey ] Salut à tous !Je fais une requete sur une table d'une base de donnée, et j'en obtient une ressource id.Ensuite je dois aller faire des requetes sur un grosse base de donnée [ par fistal ] re bonjour,c'est super urgentvoila j'ai une question toute bete phpmysql se limite bien a 255 ligne dans une table ?et si oui moi il me faudrait quelq BDD pour site dynamique [ par andooo ] Pouvez-vous me guider car je suis dans l'embarras.La table "données" de ma base comprend comme champs:*id: identifiant *titre: 1 titre pour chaque pag base de sonnée images [ par slashf ] salut à tous, j'aimerai créer une basse de donnée image, d'après mon ami google il faut stocké l'adresse URL, mais le problème c que je suis nouveau e Base de donnée voiture ? comment faire.. [ par Korri57 ] Bonjour à tousTotalement débutant dans le PHP, base de données, etc...!! je me débrouile en java, html...etcai passé plusieurs heures à chercher, mais transformer date [ par Nicorad ] Bonjour à tous,Voila j'ai une base de données, avec une table agenda, dedans j'ai un champs au format "date", donc les dates sont entrées sous la form creer une base de données [ par karima1984 ] salut tout le mondeje vx creer une base de donnees structurée pour un musée virtuelsi vous pouver m 'aiderpour plus de détail contacter moimerci j'aimerais comparer ma base de données en local et ma base de donné distancte et metre a jour la base distance mysql via un script php l [ par christclamard ] salut j'aimarais resoudre un probleme de replication de base de donnée. j'aimerais non seulement faire la mise a jour automatique des enregistrement e


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,796 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.