Tag Archives: java

Cryptage XOR en Java (version 2)

Le cryptage XOR (aussi dit OU Exclusif) reste une façon simple de crypter très rapidement une chaine de caractères.
Ma première version, consistait à faire un OU Exclusif entre chacun des caractères de la chaine et une clé d’un caractère. Cette fois-ci, la clef est une chaine de plusieurs caractères. Le cryptage est rotatif, c’est à dire qu’une même lettre n’est pas codé de la même manière.

L’avantage de cette nouvelle version est de crypter bien mieux un texte, le rendant bien moins facile à déchiffrer. Les temps de traitement sont toujours aussi rapide. La même fonction permet toujours de crypter et décrypter la chaine.
Le seul inconvénient est que si la chaine cryptée est corrompue par ajout ou suppression d’un caractère, toute la chaine en aval de celui-ci ne sera pas décryptée. En revanche, un remplacement d’un caractère par un autre se traduira seulement par un seul caractère corrompu au déchiffrage.

public String crypterXOR(String chaine, String clef)
{
    String chaineCryptee = "";
    for(int i = 0, j = 0; i < chaine.length(); i++)
    {
        chaineCryptee += (char)((int)chaine.charAt(i) ^ (int)clef.charAt(j));
        j++;
        if(j >= clef.length()) j = 0;
    }
    return chaineCryptee;
}

IDE pour le Raspberry Pi

Il est parfois plus simple de programmer sur son PC plutôt que directement sur le Rasberry Pi. D’autant plus si ce dernier n’est pas relié à un écran.
Dans ce contexte, il est préférable d’utiliser son PC avec un IDE paramétré avec une chaîne de compilation croisée pour le processeur du RPi. On peut, bien sûr, sortir la grosse artillerie avec des logiciels comme Code::Blocks ou Eclipse par exemple. Mais ayant un PC assez lent, j’ai préféré créer un outils léger et rapide, qui consomme bien moins de ressource.

C’est cet outil que je vous propose. Il permet d’éditer des codes en langage C avec des fonctionnalités communes aux IDE, comme la coloration syntaxique ou l’ouverture de plusieurs fichiers dans des onglets, par exemple.

Un bouton de compilation permet de créer le fichier exécutable par le RPi. Il suffira donc de le copier dessus pour tester.

Vue normale pendant d’édition sur RPi IDE

Mon IDE est écrit en java et fonctionne entièrement sur Linux.
Il fonctionne aussi sur Windows, mais ne pourra pas compiler le code. Toutefois, le logiciel pourra toujours servir d’éditeur de code.
Le compilateur actuel est gcc-linaro-arm-linux-gnueabihf-raspbian disponible ici.
Aucune installation n’est nécessaire.

Lien de téléchargement : RPi IDE V1.tar.gz

Si vous avez des suggestions ou des remarques, n’hésitez pas à le dire pour que je puisse améliorer le logiciel.

Cryptage XOR en Java

Actuellement je travaille avec PetitPied sur un projet dont il a parlé plusieurs fois (Projet : Led Controller, Projet : Avancement Led Controller, et Projet : Interface Graphique).
J’aide à la création de l’application Java qui permettra de communiquer en SSH avec la carte électronique.

J’ai eu l’occasion de chercher une solution simple pour crypter un mot de passe contenu dans un fichier texte visible. Mon choix s’est alors porté sur un cryptage XOR (ou OU Exclusif).

Ce cryptage, assez rapide de par sa simplicité, peut crypter une chaîne de caractère facilement à l’aide de l’opérateur OU Exclusif et la décrypter de la même façon.
Ainsi, la même fonction peut crypter et décrypter, simple et efficace !

Une clef permet le codage de chaîne.
Dans le projet, le cryptage n’étant pas la priorité, j’utilise une clef d’un seul caractère. Toutefois, on peut coder avec une clef de plusieurs caractères, en faisant quelques modifications au code que je vous propose.

public String crypterXOR(String chaine, int clef)
{
    String chaineCryptee = "";
    for(int i = 0; i < chaine.length(); i++)
    {
        chaineCryptee += (char)((int)chaine.charAt(i) ^ clef);
    }
    return chaineCryptee;
}