Java >> Tutoriel Java >  >> Java

Programme de messages secrets Java

Programme de messages secrets Java | Le message Java Secret utilise l'algorithme de chiffrement de César. Ce programme fonctionne sur le codage et le décodage. L'algorithme de chiffrement de César est un algorithme de chiffrement qui chiffre les mots donnés. Voir aussi :- Programme Java de Monty Hall

Le fonctionnement de l'algorithme de chiffrement César est le suivant :-

Chaque lettre est codée en décalant chaque lettre d'un nombre donné appelé clé. Supposons que la clé soit 2, puis chacun des caractères du message donné est décalé de 3 chiffres par rapport à sa position. Par exemple :-

Considérez le message :- "Langage de programmation Java"
Laissez la clé être 3 donc, K =3
Maintenant, le message crypté sera :-
Message crypté :- "mdyd surjudpplqj odqjxdjh"

Ici J -> m qui est la troisième lettre de 'J' est 'm', a -> d la troisième lettre de 'a' est 'd' de même pour toutes les lettres qu'il a été encodées.

Considérons un autre exemple :-
Message secret :- "Know Program"
Clé secrète (K) =8
Message crypté :- "svwe xzwoziu"

Programme de messages secrets Java

Passons maintenant au programme Java Secret Message. Nous prendrons la chaîne et la clé de l'utilisateur final. Pour recueillir les commentaires de l'utilisateur final, nous utiliserons la classe Scanner.

import java.util.Scanner;

public class Main {
   public static void main(String[] args) {
      Scanner scan = new Scanner(System.in);

      System.out.print("Secret Message: ");
      String message = scan.nextLine();
      message = message.toLowerCase();

      System.out.print("Secret key: ");
      int key = scan.nextInt();

      System.out.print("The encoded message: " 
                       + encode(message, key));
      scan.close();
   }

   public static String encode(String text, int shift) {
      String result = "";
      for (int i = 0; i < text.length(); i++) {
         char letter = text.charAt(i);
         if (letter >= 'a' && letter <= 'z') {
            letter = (char) (letter + shift);
            if (letter > 'z') {
               letter = (char) (letter - 26);
            } else if (letter < 'a') {
               letter = (char) (letter + 26);
            }
         }
         result = result + letter;
      }
      return result;
   }
}

Sortie :-

Message secret :Faites-moi confiance, je suis un "programmeur".
Clé secrète :3
Le message codé :wuxvw ph, l'p d "surjudpphu".

Message secret :"La seule façon d'apprendre un nouveau langage de programmation est d'y écrire des programmes."
Clé secrète :5
Le message codé :"ymj tsqd bfd yt qjfws f sjb uwtlwfrrnsl qfslzflj nx gd bwnynsl uwtlwfrx ns ny.”

Le fonctionnement réel du code se trouve dans la méthode encode() qui prend une chaîne et des arguments entiers du texte et du décalage.

Étape 1 :Obtenez chaque caractère du message secret en utilisant la méthode toCharAt() de la classe Java String.

Étape 2 :Ensuite, si la lettre est supérieure à « a » et inférieure à « z », ajoutez à nouveau la lettre au décalage. Si la lettre est supérieure à 'z', soustrayez la lettre de 26 ou bien si la lettre est inférieure à 'a', ajoutez la lettre à 26. Renvoyez le résultat.

Étape 3 :appelez la méthode encode() et imprimez les instructions requises dans la méthode principale.


Balise Java