Estou criando uma aplicação que recebe um número de 4 dígitos pelo usuário e faz uma encriptação do mesmo utilizando um algoritmo.
Os passos são o seguinte:
1 - Ler um número de 4 digitos;
2 - Criptografar este número com o seguinte algoritmo: substitua cada dígito pelo resultado da adição de 7 ao dígito, obtendo o restante depois da divisão do novo valor por 10. Troque então o primeiro dígito pelo terceiro e o segundo dígito pelo quarto;
3 - Imprimir o número criptografado;
4 - Criar uma aplicação separada que descriptografe um número criptografado entrado pelo usuário (revertendo o esquema de criptografia).
Eu consegui realizar os três primeiros passos, mas encontro muita dificuldade com o quarto passo, especificamente ao reverter o esquema de criptografia. Aqui vai o código:
import java.util.Scanner;
public class Encrypt {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int i; //contador
int num; //inteiro de 4 dígitos
int digito; //digito do inteiro
String digitoString = ""; //armazena os digitos em String
String string; //string que vai possibilitar o acesso aos digitos individualmente
System.out.println("Enter a 4 digit integer: ");
num = in.nextInt();
//convertendo o número para string
string = Integer.toString(num);
//encriptando cada digito
for (i=0; i< string.length(); i++) {
digito = Integer.parseInt(String.valueOf(string.charAt(i)));
digito = (digito+7)%10;
digitoString += String.valueOf(digito);
}
//transformar o primeiro dígito em terceiro e o segundo dígito em quarto
System.out.print("\n\nEncrypteded number: ");
char dig1 = digitoString.charAt(0);
char dig2 = digitoString.charAt(1);
char dig3 = digitoString.charAt(2);
char dig4 = digitoString.charAt(3);
//trocando os dígitos
dig1 = dig3;
dig2 = dig4;
//imprimindo o numero criptografado
String numEncriptado = dig1+""+dig2+""+dig3+""+dig4;
System.out.println("\n"+numEncriptado);
}
}
Gostaria que me guiassem com a realização do quarto passo e no aprimoramento deste código, se possível.