From 8b594bfe842c2c4c56df5caa0064366b6e5fa9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=A0s?= Date: Thu, 27 Oct 2022 21:17:59 +0200 Subject: [PATCH] Triple Des --- src/cryptography/TripleDes.java | 29 ++++++++++++++++++++++++ src/cryptography/temp/testTripleDes.java | 19 ++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/cryptography/TripleDes.java create mode 100644 src/cryptography/temp/testTripleDes.java diff --git a/src/cryptography/TripleDes.java b/src/cryptography/TripleDes.java new file mode 100644 index 0000000..64e03bf --- /dev/null +++ b/src/cryptography/TripleDes.java @@ -0,0 +1,29 @@ +package cryptography; + +public class TripleDes { + + private final Des[] listeDes; + + public TripleDes() { + this.listeDes = new Des[]{new Des(), new Des(), new Des(),}; + } + + public int[] crypte(String messageClair) { + String resultat = messageClair; + + for (Des des : listeDes) { + resultat = Des.bitsToString(des.crypte(resultat)); + } + return Des.stringToBits(resultat); + } + + public String decrypte(int[] messageCrypte) { + int[] resultat = messageCrypte; + + // Il faut décripter dans le sens inverse, donc de l'index le plus grand vers le plus petit + for (int i = listeDes.length - 1; i >= 0; i--) { + resultat = Des.stringToBits(listeDes[i].decrypte(resultat)); + } + return Des.bitsToString(resultat); + } +} diff --git a/src/cryptography/temp/testTripleDes.java b/src/cryptography/temp/testTripleDes.java new file mode 100644 index 0000000..69d4f98 --- /dev/null +++ b/src/cryptography/temp/testTripleDes.java @@ -0,0 +1,19 @@ +package cryptography.temp; + +import cryptography.Des; +import cryptography.TripleDes; + +public class testTripleDes { + + public static void main(String[] args) { + TripleDes tripleDes = new TripleDes(); + + String message = "Hello"; + + int[] messageCrypte = tripleDes.crypte(message); + String messageDecrypte = tripleDes.decrypte(messageCrypte); + + System.out.printf("\"%s\" -> \"%s\" -> \"%s\"", message, Des.bitsToString(messageCrypte), messageDecrypte); + } + +}