Mettre un utilisateur et un mots de passe [Fermé]

Signaler
Messages postés
366
Date d'inscription
mardi 28 juin 2016
Statut
Membre
Dernière intervention
18 mars 2018
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
Bonjour,
comme écrit dans le titre je voudrait mettre dans mon programme un "code" pour pouvoir accéder au réglage en passant par un mots de passe et un utilisateur tout cela inclus dans le programme mais je ne sais pas comment faire ! j'aurais besoin d'un peu d'aide s'il vous plaît

merci d'avance

cordialement,
Dark_another

2 réponses


Bonjour,

#include <iostream>
#include <String>

using namespace std;

int main()
{
    cout << "Pour acceder aux options, veuillez vous identifier" << endl;
    cout << "Identifiant : ";
    String identifiant = "";
    cin >> identifiant;
    cout << "Mot de passe : ";
    String mdp = "";
    cin >> mdp;

    if (identifiant == "admin" AND mdp == "admin")
    {
         // OK
    }

    else
    {
        // Non
    }
}


A vous d'adapter en fonction de vos besoins et vos connaissances, avec une base de données contenant les nom d'utilisateur et les mots de passe par exemple.

Cordialement
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 756
Ce n'est pas String mais string en C++.

Bonjour,

Conventionnellement, toutes les classes sont écrites avec une lettre majuscules.
Néanmoins, Linux considère que String est en fait string, mais je pars du principe que ce code sera compilé sous Windows.
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 756 > pierre.lagoutte
La convention dont tu parles, c'est lorsque l'utilisateur créée une classe ! Ici, la classe existe déjà. Donc si tu respectes pas la casse, cela risque de ne pas fonctionner. En tout cas, ce ne sera pas portable !

La classe est (std::string) définie et elle est définie dans l'en-tête standard (string).
Autrement dit, c'est string (et non String). Et cela fonctionnera sur n'importe quel OS (Windows, GNU/Linux, etc.)
>
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016

Effectivement, c'est vrai :)
Après, ça fait 6 ans que je code comme ça, ce n'est peut-être pas correct mais bon j'ai pris l'hébitude quoi :p
Messages postés
366
Date d'inscription
mardi 28 juin 2016
Statut
Membre
Dernière intervention
18 mars 2018
9 > pierre.lagoutte
merci de votre réponse je compte l'essayer !
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 756
Bonjour,

Quel niveau de sécurité souhaites-tu ? Car mettre le mot de passe dans le programme n'est pas une bonne idée. Une simple lecture du binaire et l'attaquant retrouvera le mot de passe.

Cdlt,

Une base de données contient des tableaux. Imaginons que tu crées un tableau (une table) dans cette base, contenant 2 colone : Utilisateur et MDP.
Utilisateur | MDP
admin admin
jacqueline titou78
Fabien azerty
Justin 1234
Fabienne 7954

Lorsqu'un utilisateur tape un nom d'utilisateur, tu vérifies dan ton tableau si le mot de passe associé est correct.
Le problème avec ce système est que si un pirate trouve ta BDD, il aura tous les mots de passe et utilisateur. Le hash s'impose donc. Le hash c'est une manière irréversible de transformer une chaîne de caractère en une autre. Par exemple le hash (en SHA-1) de "bonjour" est "1f71e0f4ac9b47cd93bf269e4017abaab9d3bd63". L'idée est d'enregistrer tous les mots de passe sous cette forme dan le tableau, et de hasher le mot de passe que l'utilisateur entre dans ton programme et de comparer les deux.
Messages postés
366
Date d'inscription
mardi 28 juin 2016
Statut
Membre
Dernière intervention
18 mars 2018
9 > pierre.lagoutte
ha d'accord
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 756 > pierre.lagoutte
pierre.lagoutte,
Il vaut mieux éviter d'utiliser SHA-1. Autant passer à SHA-256 directement.
Je conseille même de rajouter un à minima salt (voire un pepper).
Sinon, ça ne sera pas très robuste.

Dark_another,
Tu peux effectivement passer par une bibliothèque pour utiliser les fonctions de hachage.
Tu n'es pas obligé de passer par une base de données. Tu peux stocker le hach directement dans le programme, même si bien évidemment ce n'est pas le top.

C'est vrai que je ne me suis pas intéressé au SHA256 ^^
Concernant les salt/pepper, je n'en ai pas parlé pour ne pas trop compliquer la chose
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 756 > pierre.lagoutte
Pourtant, ça ne complique pas grand chose. Le plus dur c'est clairement l'implémentation du hachage. Après pour le salt, si on veut faire simple, il suffit juste de concaténer (opérateur + sur le string). avec un secret. Et voilà :-).