Java / Bukkit (Minecraft) - Si le fichier contient playername, vérifiez le mot de passe qui est stocké dans la même ligne après un ":" et faites quelque chose


C'est ma première question et j'espère que vous pourrez m'aider. Je code un plugin de registre / connexion pour Bukkit en Java. Maintenant, lorsque le joueur rejoint mon serveur, j'aimerais qu'il se connecte. Mon plugin doit vérifier si le mot de passe fourni par le lecteur est correct. C'est le code que j'ai fait jusqu'à présent.

Le problème est que je n'ai aucune idée de comment faire cela. Quelqu'un peut-il expliquer comment faire cela (peut-être seulement avec des mots)?

String currln;

br = new BufferedReader(new FileReader("/plugins/LobbyLogin/passwd.crypt"));

while ((currln = br.readLine()) != null) {
     password = currln;
}

String password = null;
String[] select = password.split(":");
String username = select[0];
String readed_pwd = select[1];
String alldata = username+readed_pwd;

P.S.: Le mot de passe de l'utilisateur est enregistré dans un fichier appelé "passwd.crypte" que j'ai créé. Voici un exemple de chaîne à partir d'elle.

ExampleUser:cGFzc3dvcmQ=

Le mot de passe est stocké crypté.

Author: user3586611, 2014-04-29

1 answers

Je suggère d'utiliser la bibliothèque intégrée YAML fournie par Bukkit pour stocker les mots de passe et les associer à un utilisateur. Ensuite, vous pouvez utiliser une simple FileConfiguration # getString(Chaîne) pour obtenir le mot de passe associé à l'utilisateur.

Je ne connais pas l'implémentation exacte de SnakeYAML, mais je suppose qu'il stocke une table de numéros de ligne pour référencer le Nœud stocké à la position pour obtenir l'objet, au lieu d'un BufferedReader pour lire chaque ligne. Cela signifie un gain de performance pour les grandes fichier.

Et, deux choses: Sauf si vous avez des problèmes de sécurité matérielle, pourquoi crypter les mots de passe? Et, je ne fais pas d'IO pendant l'exécution, maintenez la référence à la valeur initiale au démarrage du plugin dans une collection, c'est plus rapide que le disque lu à partir du fichier.

 1
Author: xTrollxDudex, 2014-04-30 04:56:35