Java Sources
Gestion de fichiers
- Parcours récursif d'une arborescence
La méthode getFilesRec() permet de parcourir récursivement toute une arborescence
et remplit une ArrayList avec les fichiers trouvés. Les autres méthodes de la classe
ShowFiles sont uniquement là pour tester la méthode getFileRec().
- Accéder à des ressources dans un fichier d'archive JAR
Ces bouts de codes permettent d'accéder à des ressources qui se trouvent dans
le même fichier jar que l'application qui les sollicite.
Graphisme et interfaces graphiques
- Effectuer des opérations de base sur une image
Cette classe permet d'effectuer quelques opérations de bases sur des images,
comme une rotation ou calculer un histogramme.
- Rappel de commandes précédentes dans un JTextField
JTextFieldX est une extension de la classe JTextField permettant de mémoriser
les entrées de l'utilisateur lorsque ce dernier appuie sur la touche return. Les
touches flèche-haut et flèche-bas permettent de naviguer parmi les commandes
précédentes.
- Afficher une image comme composant
Cette classe permet d'afficher une image comme composant (extension de JPanel). Si l'image
est plus petite que l'espace à disposition, elle sera centrée; dans le cas contraire l'image
sera zoomée de telle manière à s'adapter et couvrir tout l'espace disponible. Cette classe
fonctionne également si l'image se trouve empaquetée dans le même fichier jar que
l'application.
- SplashScreen
Un splashscreen qui fonctionne également lorsque l'image à afficher se
trouve dans un fichier jar.
- JTextArea avec scroolbars qui s'adaptent automatiquement
TextZone est un JTextArea avec des barres de défilements qui s'adaptent automatiquement
de telle manière à s'assurer que le texte dernièrement ajouté soit toujours visible.
- Bouton on/off se présentant sous forme d'un feu routier
Light est un bouton on/off se présentant sous forme d'un feu routier bicolore (rouge et vert)
qui change d'état lorsque l'on clique dessus et qui en informe les objets qui se sont abonnés à lui.
Net
- Connexion TCP/IP entre deux ordinateurs
La classe Network permet d'établir une connexion TCP/IP entre deux ordinateurs,
leurs permettant ainsi de s'échanger des messages sans se soucier des aspects
réseau. Le programme TestNetwork est un exemple permettant de mieux comprendre
son fonctionnement.
Bases de données
- Connexion à une base de données quelconque
La classe SQLService permet de se connecter à une base de donnée quelconque et d'effectuer
des requêtes SQL transmises sous forme d'une chaîne de caractères. Les réponses sont
également fournies sous forme de chaînes de caractères. Le programme SQLInterface est
une interface graphique mettant en oeuvre la classe SQLService en proposant deux exemples:
une connexion à une base MySQL et une connexion à un fichier Microsoft Access.
Crypto
- Cryptage à clés symétriques avec l'algorithme de Blowfish
Blowfish est l'algorithme de cryptage le plus utilisé dans les programmes Java.
Ceci est probablement essentiellement dû au fait qu'il est rapide, très fiable
et surtout qu'il est libre d'utilisation (pas de brevet). La classe MyBlowfish
permet de le mettre en oeuvre.
- Cryptage à clés asymétriques avec l'algorithme RSA
La classe MyRSA permet de crypter et décrypter des données en utilisant l'algorithme
à clés asymétriques RSA.
- Signature digitale en utilisant DSA
Le programme TestDSA permet de signer digitalement un texte puis de vérifier sa signature.
- Empreinte numérique d'un fichier
La classe TestHash permet de faire une empreinte numérique (SHA ou MD5) d'un fichier fourni en paramètre.
- Encrypter un fichier à partir d'un mot de passe
La classe TestPBE permet d'encrypter un texte en utilisant l'algorithme PBE
(Password Based Encryption). Le risque d'utiliser un mot de passe directement
comme clé est d'obtenir des motifs dans le ciphertext. PBE résout le problème
en "salant" (salting) le mot de passe (c'est-à-dire en ajoutant des données aléatoires),
puis en lui appliquant successivement un certain nombre de fois (nombre d'itérations)
une fonction de hachage (typiquement MD5). Les deux paramètres utilisés, "salt"
(un tableaux de bytes aléatoires) et "iterations" (le nombre de fois qu'on applique MD5)
doivent être enregistrés comme paramètres du Cipher afin de pouvoir être utilisés lors
du décodage. Dans ce programme le salt est généré de manière aléatoire à chaque exécution,
ce qui explique que le ciphertext est différent à chaque fois même si on encrypte le même
plaintext avec le même mot de passe.
Utils
Maths
- Classifieur Naive Bayes Classifieur Naive Bayes
doublement incrémental, pour des données continues. Cet algorithme est une
amélioration du Naïve Bayes original. Il est incrémental dans le sens qu'il
est possible d'ajouter des instances à un apprentissage existant. Il n'est
ainsi plus indispensable de séparer hermétiquement la phase d'apprentissage
de la phase de test. En utilisant les fonctions d'enregistrement et récupération
des tables, il devient ainsi possible de répartir un apprentissage en plusieurs
sessions. Il est également incrémental dans le sens qu'il est possible d'ajouter,
en cours d'apprentissage, des nouvelles classes cibles. C'est donc pour ces deux
raisons que le classifieur est dit doublement incrémental.