Crypter et décrypter un texte (string donc) très simplement
Leotum
Messages postés
1
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
je cherche un moyen de crypter et decrypter des données(un texte prenant en compte tous les caractères; et choisir un fichier texte pour refaire le même exercice).Mon objectif est d'être en mesure de créer un logiciel me permetant de le faire des maniere personaliser et si possible pas trop compliqué(implémentable directement de préférence ou une bonne directive).
Merci de votre collaboration
je cherche un moyen de crypter et decrypter des données(un texte prenant en compte tous les caractères; et choisir un fichier texte pour refaire le même exercice).Mon objectif est d'être en mesure de créer un logiciel me permetant de le faire des maniere personaliser et si possible pas trop compliqué(implémentable directement de préférence ou une bonne directive).
Merci de votre collaboration
A voir également:
- Crypter et décrypter un texte (string donc) très simplement
- Dvd decrypter - Télécharger - Copie & Extraction
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Mettre un texte en majuscule - Guide
1 réponse
Bonjour,
Il y a plusieurs manière de faire, mais généralement plus c'est simple, moins c'est sécurisé...
Par exemple, en sachant que si tu précises la même graine au constructeur de Random tu obtiens toujours la même série de nombre aléatoires, tu peux te servir de cette graine comme clé de cryptage et de la série de nombre aléatoires comme masques successifs pour ton message.
Il y a plusieurs manière de faire, mais généralement plus c'est simple, moins c'est sécurisé...
Par exemple, en sachant que si tu précises la même graine au constructeur de Random tu obtiens toujours la même série de nombre aléatoires, tu peux te servir de cette graine comme clé de cryptage et de la série de nombre aléatoires comme masques successifs pour ton message.
private static <T, R> R transformation(T msg, long key, Function<T, byte[]> msgToBytes, Function<byte[], R> bytesToResult) {
Random rand = new Random(key);
byte[] tab = msgToBytes.apply(msg);
for (int i = 0; i < tab.length; i++)
tab[i] ^= rand.nextInt();
return bytesToResult.apply(tab);
}
public static byte[] encrypt(String msg, long key) {
return transformation(msg, key, m -> m.getBytes(), t -> t);
}
public static String decrypt(byte[] msg, long key) {
return transformation(msg, key, m -> Arrays.copyOf(m, m.length), t -> new String(t));
}
public static void main(String[] args) {
String msg = "Hello World!";
long key = 42;
System.out.println(msg); // "Hello World!"
byte[] tab = encrypt(msg, key);
System.out.println(Arrays.toString(tab)); // [125, -110, -115, 68, -117, 107, -44, 2, -52, -10, -39, -3]
String res = decrypt(tab, key);
System.out.println(res); // "Hello World!"
}