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;
}

Laisser un commentaire


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>