• STATISTIQUES
  • Il y a eu un total de 0 membres et 63868 visiteurs sur le site dans les dernières 24h pour un total de 63 868 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    Challenges
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [EN] Sabre Films
    Site de challenge présenté sous la forme d'une quête. Vous êtes un détective et devrez résoudre d...
    Challenges
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Php] Correctement hacher un mot de passe
17-06-2011, 04h18 (Modification du message : 19-11-2012, 19h01 par InstinctHack.)
Message : #1
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
[Php] Correctement hacher un mot de passe
A chaque fois l'on créé un programme qui stock des données sensible comme un mot de passe il est primordial de bien protéger l'information. En PHP il existe une fonction qui ce nomme md5 (Message Digest 5) qui consiste a encrypter à partir d'un fichier numérique, son empreinte numérique (en l'occurrence une séquence de 128 bits ou 32 caractères en notation hexadécimale) avec une probabilité très forte que deux fichiers différents donnent deux empreintes différentes. Sa été pendant plusieurs années la façon la plus sur d'encrypter les mots de passe à condition qu'il ait 6 caractères et plus. Depuis 4 ans maintenant sur le web, il ya de plus en plus de librairies MD5 qui sont en traine de décrypter toutes les possibilités de caractère avec leur équivalant ce qui permet a des hacker de trouver en 2 secondes ce qui prendrait 1 an a décrypter par brute force.

Ex: http://decrypt.fr/ qui dit en avoir décrypté 250 000 000

Il est donc primordial pour tout bon codeur de metre sur pied un système qui permet de bien encoder les mot de pass.

Certain programmeur utilise la technique du double MD5 ... perso, j’ai la crainte que si il on fait une librairie pour les md5 simples, ya de bonne chance qu'il le face pour les doubles et voir même les triples encodages puisque c'est une technique très répandue.

La meilleure façon de bien encrypter les mots de passe c'est de faire une manipulation unique et secrète avec le mot de passe avant l'encryptage MD5 que l'ont nomme "Clé d'encription"

Ex:
Code PHP :
$cle "7tg%4r8*97hhfr#121)2"// 20 caractères ou + 

Cette clé peut être fabriqué de façon complètement random et enregistrer dans une table l'hors de l'installation de l'application que vous créé ou simplement rentrer à la dure dans votre fichier config.

La technique consiste a joindre les deux ensemble avant l'encryptage

Ex:
Code PHP :
$password md5(md5($cle.$_POST['password'].$cle)); 

Vos mots de passe sont à présent complètement sécurisé, car la chaine encryptée a minimum 48 caractères et doublement encodés =)

Si on voulait pousser l'expérience a un extrême on pourrait faire quelque chose du genre de

Code PHP :
$cle "7tg%4r8*97hhfr#121)2"// 20 caractères ou + 

function pe($cle$pass){
    
$c_cle md5(md5(sha1($cle)));
    return 
md5(md5($c_cle.$pass.sha1($c_cle))); 
}

$password pe($cle$_POST['password']);

$membre mysql_fetch_assoc(mysql_query("SELECT * FROM membre where password='$password' and username='$username'")); 

Veillez cité la source et l'auteur si vous désirer reprendre mon tuto.

Soyez intelligent et restez WhiteHat!
Par CyberSee
+1 (0) -1 (0) Répondre


Messages dans ce sujet
[Php] Correctement hacher un mot de passe - par CyberSee - 17-06-2011, 04h18

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut