laurent2403
Messages postés80Date d'inscriptionjeudi 11 novembre 2010StatutMembreDernière intervention23 février 2020
-
1 nov. 2012 à 05:30
laurent2403
Messages postés80Date d'inscriptionjeudi 11 novembre 2010StatutMembreDernière intervention23 février 2020
-
2 nov. 2012 à 22:07
Bonjour,
voila mon soucis, j'enregistre mon nom et mdp sur un txt ,comme je dois créer une petite fonction de cryptage pour mon mdp sous forme de password ,alors je le crypte en le parsant en entier , et le multiplie par 14 ,le reparse en string et tout ça va se loger dans mon txt ,et je suis contant (car prog débutant) mais le soucis ,c'est a la relecture de mon fichier dans ma fenêtre d'authentification ,il ne veut pas reconnaitre mon mdp ,quelqu'un pourrais m'aider s'il vous plait ,je rappel que je suis débutant...
merci beaucoup,voici mon code :
private JPasswordField getJPWD_MDP() {
if (jPWD_MDP == null) {
jPWD_MDP = new JPasswordField();
jPWD_MDP.setBounds(161, 110, 229, 28);
// Click >> Message : saisir 4 chiffres
jPWD_MDP.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
jLAB_Message.setVisible(true);
}
});
// Gestion de la frappe d'un caractère clavier
// (saisie et contrôle caractère par caractère)
jPWD_MDP.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent arg0) {
controleMDPcar(arg0);
}
});
}
return jPWD_MDP;
}
// Contrôle saisie du MDP caractère par caractère
public void controleMDPcar(KeyEvent arg0) {
// on utilise la gestion des exceptions
// pour contrôler si la saisie convient
try {
// Problème du clavier sans pavé numérique:
// shift + nombre : ERREUR pour le shift
// >> ESSAYER AVEC "int nbentier = arg0.getKeyCode();"
char carAscii = arg0.getKeyChar();
// ? conversion char >> int ??
// on passe par la conversion string >> int
String strChiffre = Character.toString(carAscii);
@SuppressWarnings("unused")
int chiffre = Integer.parseInt(strChiffre);
// AUTRES VERIFICATIONS A FAIRE : différent de zéro
// et mot de passe de 4 chiffres
private JLabel getJLAB_Message() {
if (jLAB_Message == null) {
jLAB_Message = new JLabel("Saisir 4 chiffres compris entre 1 et 9");
jLAB_Message.setHorizontalAlignment(SwingConstants.RIGHT);
jLAB_Message.setForeground(Color.WHITE);
jLAB_Message.setFont(new Font("Tahoma", Font.PLAIN, 18));
jLAB_Message.setBounds(96, 144, 298, 35);
// pour masquer à l'ouverture le message sur les chiffres
jLAB_Message.setVisible(false);
}
return jLAB_Message;
}
private JButton getJBTN_OK() {
if (jBTN_OK == null) {
jBTN_OK = new JButton("OK");
jBTN_OK.setBounds(237, 194, 89, 23);
jBTN_OK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// 1. vérifier si tous les champs ont été saisis
if (verifSaisieChamps()) {
// 2.1. vérifier si le fichier "comptes.txt" existe
verifFichier();
// 2.2. vérifier si le nom n'existe pas déjà
parcoursFichier();
// 3. on ajoute les données (points 1 et 2 vérifiés)
ajouter();
} else {
JOptionPane.showMessageDialog(null,
"Renseigner tous les champs");
// + A faire : si un champ sur les 2 a été renseigné,
// l'effacer
}
}
});
}
return jBTN_OK;
}
// 1. vérifier si tous les champs ont été saisis
private boolean verifSaisieChamps() {
boolean saisieChamps = false;
// getPassword() renvoie un tableau de char
// que je convertis en String
String strMDP = new String(jPWD_MDP.getPassword());
saisieChamps = !jTXT_Nom.getText().equals("") && !strMDP.equals("");
return saisieChamps;
}
// 2.1. vérifier si le fichier "comptes.txt" existe
private void verifFichier() {
File articles = new File(nomFichier);
if (!articles.exists()) {
try {
FileWriter fichier = new FileWriter(nomFichier);
fichier.close();
} catch (IOException e) {
// si le fichier n'existe pas, il sera créé
}
}
}
// 2.2. vérifier si le nom n'existe pas déjà
private boolean parcoursFichier() {
boolean trouve = false;
try {
// création d'un stream
FileReader fichier = new FileReader(nomFichier);
// buffer de sortie (pour accélérer les transferts dans le stream)
BufferedReader buffer = new BufferedReader(fichier);
try {
String nom;
String ligne = buffer.readLine();
while (ligne != null && trouve == false) {
// lecture ligne par ligne
String[] tabChaine = ligne.split(";");
nom = tabChaine[0];
// vérifier si le nom existe
trouve = jTXT_Nom.getText().equals(nom);
ligne = buffer.readLine();
}
if (trouve)
JOptionPane.showMessageDialog(null, "Ce nom existe déjà");
buffer.close();
// 3. on ajoute les données (points 1 et 2 vérifiés)
private void ajouter() {
// création d'un stream de sortie
try {
FileWriter fichier = new FileWriter(nomFichier, true);
BufferedWriter buffer = new BufferedWriter(fichier);
buffer.append(jTXT_Nom.getText() + ";");
String strMDP = new String(jPWD_MDP.getPassword());
//Cryptage du mdp
int value = 0;
value = Integer.parseInt(strMDP);
value = value * 4235;
String mdp = "o";
mdp = Integer.toString(value);
buffer.append(mdp);
buffer.newLine();
buffer.close();
private JPasswordField getJPWD_MDP() {
if (jPWD_MDP == null) {
jPWD_MDP = new JPasswordField();
jPWD_MDP.setBounds(161, 110, 229, 28);
// Click >> Message : saisir 4 chiffres
jPWD_MDP.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
jLAB_Message.setVisible(true);
}
});
// Gestion de la frappe d'un caractère clavier
// (saisie et contrôle caractère par caractère)
jPWD_MDP.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent arg0) {
controleMDPcar(arg0);
}
});
}
return jPWD_MDP;
}
// Contrôle saisie du MDP caractère par caractère
public void controleMDPcar(KeyEvent arg0) {
// on utilise la gestion des exceptions
// pour contrôler si la saisie convient
try {
// Problème du clavier sans pavé numérique:
// shift + nombre : ERREUR pour le shift
// >> ESSAYER AVEC "int nbentier = arg0.getKeyCode();"
char carAscii = arg0.getKeyChar();
// ? conversion char >> int ??
// on passe par la conversion string >> int
String strChiffre = Character.toString(carAscii);
@SuppressWarnings("unused")
int chiffre = Integer.parseInt(strChiffre);
// AUTRES VERIFICATIONS A FAIRE : différent de zéro
// et mot de passe de 4 chiffres
private JLabel getJLAB_Message() {
if (jLAB_Message == null) {
jLAB_Message = new JLabel("Saisir 4 chiffres compris entre 1 et 9");
jLAB_Message.setHorizontalAlignment(SwingConstants.RIGHT);
jLAB_Message.setForeground(Color.WHITE);
jLAB_Message.setFont(new Font("Tahoma", Font.PLAIN, 18));
jLAB_Message.setBounds(96, 144, 298, 35);
// pour masquer à l'ouverture le message sur les chiffres
jLAB_Message.setVisible(false);
}
return jLAB_Message;
}
private JButton getJBTN_OK() {
if (jBTN_OK == null) {
jBTN_OK = new JButton("OK");
jBTN_OK.setBounds(237, 194, 89, 23);
jBTN_OK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// 1. vérifier si tous les champs ont été saisis
if (verifSaisieChamps()) {
// 2.1. vérifier si le fichier "comptes.txt" existe
verifFichier();
// 2.2. vérifier si le nom n'existe pas déjà
parcoursFichier();
// 3. on ajoute les données (points 1 et 2 vérifiés)
ajouter();
} else {
JOptionPane.showMessageDialog(null,
"Renseigner tous les champs");
// + A faire : si un champ sur les 2 a été renseigné,
// l'effacer
}
}
});
}
return jBTN_OK;
}
// 1. vérifier si tous les champs ont été saisis
private boolean verifSaisieChamps() {
boolean saisieChamps = false;
// getPassword() renvoie un tableau de char
// que je convertis en String
String strMDP = new String(jPWD_MDP.getPassword());
saisieChamps = !jTXT_Nom.getText().equals("") && !strMDP.equals("");
return saisieChamps;
}
// 2.1. vérifier si le fichier "comptes.txt" existe
private void verifFichier() {
File articles = new File(nomFichier);
if (!articles.exists()) {
try {
FileWriter fichier = new FileWriter(nomFichier);
fichier.close();
} catch (IOException e) {
// si le fichier n'existe pas, il sera créé
}
}
}
// 2.2. vérifier si le nom n'existe pas déjà
private boolean parcoursFichier() {
boolean trouve = false;
try {
// création d'un stream
FileReader fichier = new FileReader(nomFichier);
// buffer de sortie (pour accélérer les transferts dans le stream)
BufferedReader buffer = new BufferedReader(fichier);
try {
String nom;
String ligne = buffer.readLine();
while (ligne != null && trouve == false) {
// lecture ligne par ligne
String[] tabChaine = ligne.split(";");
nom = tabChaine[0];
// vérifier si le nom existe
trouve = jTXT_Nom.getText().equals(nom);
ligne = buffer.readLine();
}
if (trouve)
JOptionPane.showMessageDialog(null, "Ce nom existe déjà");
buffer.close();
// 3. on ajoute les données (points 1 et 2 vérifiés)
private void ajouter() {
// création d'un stream de sortie
try {
FileWriter fichier = new FileWriter(nomFichier, true);
BufferedWriter buffer = new BufferedWriter(fichier);
buffer.append(jTXT_Nom.getText() + ";");
String strMDP = new String(jPWD_MDP.getPassword());
//Cryptage du mdp
int value = 0;
value = Integer.parseInt(strMDP);
value = value * 4235;
String mdp = "o";
mdp = Integer.toString(value);
buffer.append(mdp);
buffer.newLine();
buffer.close();
Bonjour laurent2403,
As-tu vérifier que tous les noms d'utilisateurs avec leurs mots de passe sont bien écrit dans le fichier texte ?
Dans le format que tu as prévu
(je le crypte en le parsant en entier , et le multiplie par 14 ,le reparse en string) ?
Car dans ta fonction ajouter(), tu as écrit : value = value * 4235; ... ?
laurent2403
Messages postés80Date d'inscriptionjeudi 11 novembre 2010StatutMembreDernière intervention23 février 20202 2 nov. 2012 à 22:07
voici les modifs apporte dans le try/catch pour que finalement il décrypte mon mdp,c'est pas de la haute voltige mais pour un débutant que je suis ça tourne et cela fera l'affaire...
try {
String nom = new String();
String mdp = new String(jPWD_MDP.getPassword());
// decryptage
int value = 0;
value = Integer.parseInt(mdp);
String mdp2 = "1";
value = value * 4235;
mdp2 = Integer.toString(value);
String ligne = buffer.readLine();
while (ligne != null && trouve == false) {
// lecture ligne par ligne
String[] tabChaine = ligne.split(";");
nom = tabChaine[0];
mdp2 = tabChaine[1];
// vérifier si le nom et le pseudo existent
trouve = (jTXT_Nom.getText().equals(nom) && (jPWD_MDP
.getText().equals(mdp)));
ligne = buffer.readLine();
}
if (trouve) {
Portefeuille p1 = new Portefeuille(nom);
p1.setVisible(true);
buffer.close();
} else
JOptionPane
.showMessageDialog(null,
"votre pseudo ou/et votre mot de passe n'est pas correcte");