Facebook
From José Galea 1ºB DAM, 4 Years ago, written in Java.
Embed
Download Paste or View Raw
Hits: 133
  1. public class Mi_utils {
  2.     public static String cifradoCesar(String contenidoFicheroString, int desplazamiento) {
  3.         String abcMin = "abcdefghijklmnopqrstuvwxyz";
  4.         String abcMax = abcMin.toUpperCase();
  5.         char letra;
  6.         int posicionInicial;
  7.         int posicionFinal;
  8.         String textoCifrado = "";
  9.  
  10.         for (int i = 0; i < contenidoFicheroString.length(); i++) {
  11.             letra = contenidoFicheroString.charAt(i);
  12.  
  13.             if (Character.isLowerCase(letra)) {
  14.                 posicionInicial = abcMin.indexOf(letra);
  15.                 posicionFinal = posicionInicial + desplazamiento;
  16.                 if (posicionFinal > 25) {
  17.                     posicionFinal = posicionFinal % 26;
  18.                 } else if (posicionFinal < 0) {
  19.                     posicionFinal = 26 + posicionFinal;
  20.                 }
  21.                 letra = abcMin.charAt(posicionFinal);
  22.             }
  23.             if (Character.isUpperCase(letra)) {
  24.                 posicionInicial = abcMax.indexOf(letra);
  25.                 posicionFinal = posicionInicial + desplazamiento;
  26.                 if (posicionFinal > 25) {
  27.                     posicionFinal = posicionFinal % 26;
  28.                 } else if (posicionFinal < 0) {
  29.                     posicionFinal = 26 + posicionFinal;
  30.                 }
  31.                 letra = abcMax.charAt(posicionFinal);
  32.             }
  33.             textoCifrado = textoCifrado + letra;
  34.         }
  35.         return textoCifrado;
  36.     }
  37.     public static String cifrarFichero(String nombreFichero, int desplazamiento) {
  38.  
  39.         File f = new File(nombreFichero);
  40.         FileReader fr = null;
  41.         ArrayList<Character> contenidoFichero = new ArrayList<Character>();
  42.  
  43.         try {
  44.             fr = new FileReader(f);
  45.         } catch (FileNotFoundException ex) {
  46.             System.out.println("ERROR--->" + ex.getMessage());
  47.         }
  48.         try {
  49.             int caracter = fr.read();
  50.             while (caracter != -1) {
  51.                 contenidoFichero.add((char) caracter);
  52.                 caracter = fr.read();
  53.             }
  54.  
  55.         } catch (IOException ex) {
  56.             System.out.println("ERROR ---> " + ex.getMessage());
  57.         }
  58.  
  59.         String contenidoFicheroString = "";
  60.         char caracterACaracter = '1';
  61.  
  62.         for (int i = 0; i < contenidoFichero.size(); i++) {
  63.             caracterACaracter = contenidoFichero.get(i);
  64.             contenidoFicheroString = contenidoFicheroString + String.valueOf(caracterACaracter);
  65.         }
  66.         //  System.out.print(contenidoFicheroString);
  67.         System.out.println("------------------------------------");
  68.         String textoCifrado = cifradoCesar(contenidoFicheroString, desplazamiento);
  69.  
  70.         //System.out.print(textoCifrado);
  71.         return textoCifrado;
  72.     }
  73.  
  74.     public static int obtenerDesplazamiento(String textoCifrado) {
  75.         String abcMin = "abcdefghijklmnopqrstuvwxyz";
  76.         int[] cuentaLetras = new int[26];
  77.         int posicionRepetida = 0;
  78.         int mayor = 0;
  79.         int desplazamiento;
  80.         for (int i = 0; i < textoCifrado.length(); i++) {
  81.             for (int j = 0; j < abcMin.length(); j++) {
  82.                 if (textoCifrado.charAt(i) == abcMin.charAt(j)) {
  83.  
  84.                     cuentaLetras[j] = cuentaLetras[j] + 1;
  85.                 }
  86.             }
  87.         }
  88.         for (int i = 0; i < cuentaLetras.length; i++) {
  89.             if (cuentaLetras[i] > mayor) {
  90.                 mayor = cuentaLetras[i];
  91.                 posicionRepetida = i;
  92.             }
  93.         }
  94.         desplazamiento = 4 - posicionRepetida;
  95.         return desplazamiento;
  96.     }
  97. }
  98.