J'ai débuté le langage Java et j'ai créé une application de gestion de profil avec une DB sous forme de fichier .csv
Mais j'aimerais sécurisé l'accès au programme avec un mot de passe
Mon but est de recevoir comme paramètre en entrée du programme le user et le MDP. Ex :
java *.class user MDP
J'ai déjà fais une méthode pour gérerla confirmation du mot de passe et elle fonctionne. Elle s'occupe de stocké et lire les mots de passe du fichier profils.csv
Les mots de passes sont stocké sous la forme : user;MDP
Ex:
titi;toto
tata;tutu
...
Ce que je voudrais c'est sécuriser le fichier profils.csv pour empêcher les personnes de trouver facilement ces identifiants.
Je suis débutant en Java et donc je ne voudrais une solution que je comprenne --> pas trop complexe.
Connection.java :
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;
public class Connexion {
public static void creationFichierMDP() {
File dossier = new File("user");
if (!dossier.exists()) {
if (dossier.mkdir())
Log.log("Création du dossier \"user\"");
else
Log.log("Erreur à la création du dossier \"users\"");
}
try {
File fichier = new File("user/profils.csv");
if (!fichier.exists()) {
if (fichier.createNewFile())
Log.log("Création du fichier \"profils.csv\"");
}
} catch (IOException e) {
Log.log("Erreur à la création du fichier \"profils.csv\"");
e.printStackTrace();
System.exit(2);
}
}
public static String gestionMDP(String user) {
try {
Connexion.creationFichierMDP();
File fichierMDP = new File("user/profils.csv");
Scanner fichierLecture = new Scanner(fichierMDP);
String fichierMDPLocal = fichierLecture.nextLine();
while (fichierLecture.hasNextLine()) {
fichierMDPLocal = fichierMDPLocal + ";" + fichierLecture.nextLine();
}
String[] parts = fichierMDPLocal.split(";");
int index = -1;
for (int i = 0; i < parts.length; i++)
if (parts[i].equals(user)) {
index = i;
}
if (index == -1)
return "";
return parts[index+1];
} catch (IOException e) {
Log.log("Lecture du fichier \"user/profils.csv\" impossible");
e.printStackTrace();
System.exit(6);
}
return "";
}
}
Main.java
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Log.log("--------------------------");
Log.log("Lancement de l'application");
if (args.length != 0 && Connexion.gestionMDP(args[0]).equals(args[1])) {
Log.log("Accès autorisé");
final int maxDeProfil = 10;
Profil[] personnes = new Profil[maxDeProfil + 1];
BackupProfil.scannerFichierEnregistrerProfils(personnes);
do {
int choix = menu();
if (choix == 1 && Profil.getNbProfil() < (maxDeProfil + 1)) {
BackupProfil.demandeInformationProfil(personnes, maxDeProfil + 1);
} else if (choix == 1) {
System.out.println("Vous avez déja le max de profils");
Log.log("Impossible de créé le profil : Nombre maximum de profils atteint");
}
} while (true);
}else {
Log.log("Accès refusé");
System.out.println("Accès refusé");
}
}
public static int menu() {
Scanner input = new Scanner(System.in);
int choix = 1;
do {
System.out.println("Que voulez-vous faire ?");
System.out.println("1. Ajouter un profil");
choix = input.nextInt();
} while (choix < 1 || choix > 100);
return choix;
}
}
C'est vrai que j'ai pas besoin de le déchiffrer, j'y avais pas pensé
Merci
Chiffrer une chaîne de caractère
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl