C'est pas grave tout ce que vous dites car tout ce que je veux, c'est avoir un code qui différence chaque caractère et que ne change pas d'un machine à l'autre et j'ai eu ce que je voulais il y a un bon moment. Il me restait encore quelques questions mais j'ai réussi à les résoudre tout seul alors si vous voulez un preuve voila mon programme :
//merci de ne pas vous l'attribuer ou le mettre à votre nom
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class TrivialApplication
{
public static void main(String[] args)
{
try
{
PrintWriter out = new PrintWriter(new FileWriter("help.txt"));
out.println("Ceci est un programme de cryptage, donc capable de crypter des fichiers. \rIl est totalementgratuit. Pour l'utiliser, double-cliquez sur le fichier \rMRJApplication.bin, une nouvelle fenetre s'ouvre avec deux champs et \rdeux bouttons. Tapez une clé de cryptage dans le premier champs \r(attention : notez la clé quelque part pour ne pas l'oublier), le premier \rboutton servira à crypter votre fichier et le second à le décrypter. Le \rdeuxième champ est celui où vous devez entrer le chemin du fichier. \rAvant de cliquer sur le boutton de cryptage, vérifiez bien d'avoir fait \rune copie du fichier que vous voulez crypter car le nouveau fichier le \rremplacera. Maintenant cliquez sur le boutton de cryptage, si le fichier \rn'est pas crypté, alors vérifiez que le chemin soit juste. Pour le décryptage, \rrefaite la même oppération sauf que cette fois-ci, pressez sur le boutton \rde décryptage. Voila tout ce que vous devez savoir. OmEn [i2n] www.i-2n.net \r");
out.flush();
}
catch(IOException e){}
IOCryptEur crypt = new IOCryptEur();
crypt.show();
}
}
public class IOCryptEur extends Frame
{
TextField ikey;
Button crypt;
Button decrypt;
TextField itext;
public IOCryptEur()
{
setTitle("The i2n OmEn's CryPteur (" + System.getProperty("user.name") + ")");
setSize(260, 60);
setLocation(40, 60);
setResizable(false);
setLayout(new FlowLayout());
setFont(new Font("Monaco", Font.PLAIN, 10));
ikey = new TextField("", 16);
crypt = new Button("Crypt");
decrypt = new Button("Decrypt");
itext = new TextField("", 35);
add(ikey);
add(crypt);
add(decrypt);
add(itext);
itext.setText(System.getProperty("user.dir") + "/");
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
crypt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
File file = new File(itext.getText());
if(file.isDirectory())
{
String[] ilist = file.list();
for(int i = 0 ; i < ilist.length ; i++)
{
File c = new File(ilist[i]);
Crypt(c.getCanonicalPath());
}
}
else Crypt(file.getCanonicalPath());
}
catch(IOException o){}
}
});
decrypt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
File file = new File(itext.getText());
if(file.isDirectory())
{
String[] ilist = file.list();
for(int i = 0 ; i < ilist.length ; i++)
{
File d = new File(ilist[i]);
DeCrypt(d.getCanonicalPath());
}
}
else DeCrypt(file.getCanonicalPath());
}
catch(IOException o){}
}
});
}
public void DeCrypt(String path)
{
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String line;
String text = "";
while((line = in.readLine()) != null) text += line + "\r";
String key = ikey.getText();
int l = 0;
String cryptedText = "";
for(int i = 0 ; i < text.length() ; i++)
{
char t = text.charAt(i);
int ti = (int)t;
if(ti > 126) cryptedText += t;
else
{
char k = key.charAt(l);
int ki = (int)k;
int tiki = ti - ki;
if(tiki < 0) tiki += 126;
char tk = (char)tiki;
cryptedText += tk;
if(l >= key.length() - 1) l = 0;
else l++;
}
}
PrintWriter out = new PrintWriter(new FileWriter(path));
out.print(cryptedText.substring(0, cryptedText.length()));
out.flush();
}
catch(IOException e)
{
}
}
public void Crypt(String path)
{
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String line;
String text = "";
while((line = in.readLine()) != null) text += line + "\r";
String key = ikey.getText();
int l = 0;
String decryptedText = "";
for(int i = 0 ; i < text.length() ; i++)
{
char t = text.charAt(i);
int ti = (int)t;
if(ti > 126) decryptedText += t;
else
{
char k = key.charAt(l);
int ki = (int)k;
int tiki = ti + ki;
if(tiki > 126) tiki -= 126;
char tk = (char)tiki;
decryptedText += tk;
if(l >= key.length() - 1) l = 0;
else l++;
}
}
PrintWriter out = new PrintWriter(new FileWriter(path));
out.print(decryptedText.substring(0, decryptedText.length()));
out.flush();
}
catch(IOException e)
{
}
}
}
Si vous voulez en savoir plus rendez-vous sur http://www.i-2n.net/cours/cryptographie
c'est un petit cours que j'ai fait sur la crypto.
Bonne chance à vous !
OmEn [i2n]
www.i-2n.net