Bom dia a todos ! Estou em dúvida quanto a uma classe que usa criptografia. O código roda e compila, porém, eu nao entendi a parte que codifica os numeros. Abaixo estao a classe que criptografa e, em seguida, a classe que descriptografa. Eis o código abaixo:
// classe que criptografa uma numero de 4 digitos inserido pelo usuario
import java.util.Scanner;
public class Encrypt
{
// encrypt a four-digit number
public void encrypt()
{
Scanner input = new Scanner( System.in );
int number; // original number
int digit1; // first digit
int digit2; // second digit
int digit3; // third digit
int digit4; // fourth digit
int encryptedNumber; // encrypted number
// enter four digit number to be encrypted
System.out.print( "Enter a four digit number: " );
number = input.nextInt();
// encrypt
digit1 = ( number / 1000 + 7 ) % 10;
digit2 = ( number % 1000 / 100 + 7 ) % 10;
digit3 = ( number % 100 / 10 + 7 ) % 10;
digit4 = ( number % 10 + 7 ) % 10;
encryptedNumber = digit1 * 10 + digit2 +
digit3 * 1000 + digit4 * 100;
System.out.printf( “Encrypted number is %d\n”, encryptedNumber );
} // end method encrypt
} // end class Encrypt
agora a classe que descriptografa o numero:
// clase que descriptografa o numero criptografado anteriormente
import java.util.Scanner;
public class Decrypt
{
// decrypt a four-digit number
public void decrypt()
{
Scanner input = new Scanner( System.in );
int number; // original number
int digit1; // first digit
int digit2; // second digit
int digit3; // third digit
int digit4; // fourth digit
int decryptedNumber; // encrypted number
// enter four digit number to be decrypted
System.out.print( "Enter a four digit number: " );
number = input.nextInt();
// decrypt
// Esta é a parte que não estou entendendo. Alguém pode me fazer
// entender esta parte???
digit1 = ( number / 1000 + 3 ) % 10;
digit2 = ( number % 1000 / 100 + 3 ) % 10;
digit3 = ( number % 100 / 10 + 3 ) % 10;
digit4 = ( number % 10 + 3 ) % 10;
// fim da parte que não estou entendendo--------------------------------
decryptedNumber = digit1 * 10 + digit2 +
digit3 * 1000 + digit4 * 100;
System.out.printf( “Decrypted number is %d\n”, decryptedNumber );
} // end method decrypt
} // end class Decrypt