import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Scanner;
public class Szyfr {
public static String szyfruj(String jawny,String klucz,HashMap mapa){
String tajny="";
if (klucz.length()<jawny.length()){
int j=0; // pierwsza litera z klucza do wstawienia
for (int i = klucz.length()-1; i < jawny.length()-1; i++) {
klucz=klucz+klucz.charAt(j);
j=j+1;
}
}
for (int i = 0; i < jawny.length(); i++) {
int dlugosc=(int)jawny.charAt(i)+(int)mapa.get(""+klucz.charAt(i));
if (dlugosc>90) dlugosc=dlugosc-26;
tajny=tajny+(char)(dlugosc);
}
return tajny;
}
public static String deszyfruj(String szyfrogram,String klucz,HashMap mapa){
String jawny="";
if (klucz.length()<szyfrogram.length()){
int j=0; // pierwsza litera z klucza do wstawienia
for (int i = klucz.length()-1; i < szyfrogram.length()-1; i++) {
klucz=klucz+klucz.charAt(j);
j=j+1;
}
}
for (int i = 0; i < szyfrogram.length(); i++) {
int dlugosc=(int)szyfrogram.charAt(i)-(int)mapa.get(""+klucz.charAt(i));
if (dlugosc<65) dlugosc=dlugosc+26;
jawny=jawny+(char)(dlugosc);
}
return jawny;
}
public static void main(String[] args) throws FileNotFoundException {
HashMap <String,Integer> mapa=new HashMap <String,Integer>();
mapa.put("A", 1);mapa.put("B", 2);mapa.put("C", 3);mapa.put("D", 4);mapa.put("E", 5);mapa.put("F", 6);
mapa.put("G", 7);mapa.put("H", 8);mapa.put("I", 9);mapa.put("J", 10);mapa.put("K", 11);mapa.put("L", 12);
mapa.put("M", 13);mapa.put("N", 14);mapa.put("O", 15);mapa.put("P", 16);mapa.put("Q", 17);mapa.put("R", 18);
mapa.put("S", 19);mapa.put("T", 20);mapa.put("U", 21);mapa.put("V", 22);mapa.put("W", 23);mapa.put("X", 24);
mapa.put("Y", 25);mapa.put("Z", 26);
// szyfrowanie
File plika1=new File("tj.txt");
File plika2=new File("klucze1.txt");
File plika3=new File("wyniki4a.txt");
PrintWriter zapisa=new PrintWriter(plika3);
Scanner odczyta=new Scanner(plika1);
Scanner odczytb=new Scanner(plika2);
while(odczyta.hasNextLine() && odczytb.hasNextLine()){
zapisa.println(szyfruj(odczyta.nextLine(),odczytb.nextLine(),mapa));
}
odczyta.close();
odczytb.close();
zapisa.close();
//deszyfrowanie
File plikb1=new File("sz.txt");
File plikb2=new File("klucze2.txt");
File plikb3=new File("wyniki4b.txt");
PrintWriter zapisb=new PrintWriter(plikb3);
Scanner odczytc=new Scanner(plikb1);
Scanner odczytd=new Scanner(plikb2);
while(odczytc.hasNextLine() && odczytd.hasNextLine()){
zapisb.println(deszyfruj(odczytc.nextLine(),odczytd.nextLine(),mapa));
}
odczytc.close();
odczytd.close();
zapisb.close();
}
}
Comments