import java.io.*;       // 

/*
   Cette classe implante un chiffreur-dechiffreur
   monoalphabetique
*/
public class Mono {
	private char[] clef;

	public Mono(String clef) {
		this.clef = clef.toCharArray();
	}

	public String chiffre(String clair) {
		clair = clair.toLowerCase();
		String chiffre = "";
		for (int i = 0; i < clair.length(); i++) {
			int cl = clair.charAt(i);
			int ch = cl - 'a';
			if (0 <= ch && ch < clef.length)
				chiffre += clef[ch];
		}
		return chiffre;
	}

	public String dechiffre(String chiffre) {
		chiffre = chiffre.toLowerCase();
		String clair = "";
		for (int i = 0; i < chiffre.length(); i++) {
			char ch = chiffre.charAt(i);
			int pos = -1;
			for (int j = 0; j < clef.length; j++)
				if (clef[j] == ch) pos = j;
			if (pos >= 0)
				clair += (char)('a' + pos);
		}
		return clair;
	}
	
	// deux arguments; le fichier est fichier-crypt.txt
	// 1) la clef
	// 2) chiffre ou dechiffre

	public static void main(String[] args) throws IOException {
		if (args.length < 1) {
			System.out.println("Pas assez d'arguments");
			System.exit(0);
		}
		String clef = args[0];
		Boolean decrypt = false;
		if (args.length >= 2 && args[1].equals("--dechiffre"))
			decrypt = true;

		Mono mono = new Mono(clef);
		
		
		BufferedReader in = new BufferedReader(new FileReader("fichier-crypt.txt"));

		String line;
		while ((line = in.readLine()) != null) {
			if (decrypt)
				System.out.println(mono.dechiffre(line));
			else
				System.out.println(mono.chiffre(line));
		}
	}
}
	