Skip to content

Commit fcd4c9a

Browse files
committed
commit
1 parent 01c00dc commit fcd4c9a

13 files changed

+559
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
4+
<classpathentry kind="src" path=""/>
5+
<classpathentry kind="output" path=""/>
6+
</classpath>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>src</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.eclipse.jdt.core.javanature</nature>
16+
</natures>
17+
</projectDescription>
Binary file not shown.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import service.EncryptionService;
2+
3+
public class Main {
4+
5+
public static void main(String[] args) {
6+
EncryptionService service = new EncryptionService();
7+
System.out.println("Le texte chiffr� est : " + service.algoEncryptionText("open campus"));
8+
System.out.println("Le texte chiffr� est : " + service.algoDecryptionText("ayoh4jtdyuc"));
9+
}
10+
11+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package service;
2+
3+
public class EncryptionOfDeVigenere {
4+
public static final String alphabet = new String("azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789+-*/=&�\"'(-�_��)^��������$��*�%�!�:/;.,? �~#{[|`\\@]}\t\n<>�" + "���������".toUpperCase());
5+
public static final int tailleAlphabet = alphabet.length();
6+
7+
public static String encryptWithVigenere(String messageAEncrypt, String EncrpytionKey) {
8+
String messageEncrypt = new String();
9+
int i = 0;
10+
for (i = 0; i < messageAEncrypt.length(); i++) {
11+
int j = alphabet.indexOf(messageAEncrypt.charAt(i));
12+
if (j >= 0) {
13+
j = (j + alphabet.indexOf(EncrpytionKey.charAt(i % EncrpytionKey.length())) + 1) % tailleAlphabet;
14+
messageEncrypt = messageEncrypt + alphabet.charAt(j);
15+
}
16+
else {
17+
messageEncrypt = messageEncrypt + messageAEncrypt.charAt(i);
18+
}
19+
}
20+
21+
return messageEncrypt;
22+
}
23+
24+
public static String deencryptWithVigenere(String messageADecrypt, String EncrpytionKey) {
25+
String messageEncrypt = new String();
26+
int i = 0;
27+
for (i = 0; i < messageADecrypt.length(); i++) {
28+
int j = alphabet.indexOf(messageADecrypt.charAt(i));
29+
if (j >= 0) {
30+
j = (j - alphabet.indexOf(EncrpytionKey.charAt(i % EncrpytionKey.length())) - 1) % tailleAlphabet;
31+
while (j < 0) {
32+
j += tailleAlphabet;
33+
}
34+
messageEncrypt = messageEncrypt + alphabet.charAt(j);
35+
}
36+
else {
37+
messageEncrypt = messageEncrypt + messageADecrypt.charAt(i);
38+
}
39+
}
40+
return messageEncrypt;
41+
}
42+
43+
public static boolean checkIfKeyOfCryptageIsInvalid(String EncrpytionKey) {
44+
for (int i = 0; i < EncrpytionKey.length(); i++) {
45+
if (alphabet.indexOf(EncrpytionKey.charAt(i)) == -1) {
46+
return true;
47+
}
48+
}
49+
return false;
50+
}
51+
52+
public static void main(String[] args) {
53+
// TODO Auto-generated method stub
54+
55+
String EncrpytionKey = "lol";
56+
if (!checkIfKeyOfCryptageIsInvalid(EncrpytionKey)) {
57+
System.out.println(encryptWithVigenere("12345678", EncrpytionKey));
58+
}
59+
System.out.println(encryptWithVigenere("12345678", EncrpytionKey));
60+
System.out.println(deencryptWithVigenere("HUm�p�S�xHkSx|", EncrpytionKey));
61+
62+
}
63+
64+
}
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
package service;
2+
3+
import java.util.Random;
4+
5+
public class EncryptionOfVernam {
6+
static char lettreAlphabetTableau[] = {'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '�', '�', '�', '�', '�', '-', '.', '�', ',', ' '};
7+
static char letterMaskArray[] = {'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
8+
static char messageAEncryptTab[];
9+
static char maskDeEncryptionMessage[];
10+
public static void main(String[] args) {
11+
// TODO Auto-generated method stub
12+
13+
System.out.println("Le chiffrement donne " + calculationEncryptionVernam('d', 'o', lettreAlphabetTableau, letterMaskArray));
14+
System.out.println("Le chiffrement du mot entier donne " + encryptionMessageAvecVernam("HELLO"));
15+
16+
displayAlphabetWithIndiceInArray(lettreAlphabetTableau);
17+
System.out.println("\n");
18+
displayAlphabetWithIndiceInArray(letterMaskArray);
19+
20+
}
21+
22+
static String encryptionMessageAvecVernam(String messageEncrpt) {
23+
messageAEncryptTab = messageEncrpt.toLowerCase().toCharArray();
24+
StringBuilder encryptionMessageBuilder = new StringBuilder();
25+
String maskDeEncryptionGenerator = getSaltString(messageEncrpt.length());
26+
System.out.println("Le masque de chiffrement generer est : " + maskDeEncryptionGenerator);
27+
maskDeEncryptionMessage = maskDeEncryptionGenerator.toCharArray();
28+
for (char l : messageAEncryptTab){
29+
for (char c : maskDeEncryptionMessage) {
30+
char a = calculationEncryptionVernam(l, c, lettreAlphabetTableau, letterMaskArray);
31+
encryptionMessageBuilder.append(a);
32+
}
33+
}
34+
System.out.println(encryptionMessageBuilder.toString());
35+
36+
return encryptionMessageBuilder.toString();
37+
}
38+
39+
static String getSaltString(int sizeMessageAEncrypt) {
40+
String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
41+
System.out.println("Taille SALTCHARS " + SALTCHARS.length());
42+
//String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
43+
StringBuilder salt = new StringBuilder();
44+
Random rnd = new Random();
45+
while (salt.length() < sizeMessageAEncrypt) { // length of the random string.
46+
int index = (int) (rnd.nextFloat() * SALTCHARS.length());
47+
salt.append(SALTCHARS.charAt(index));
48+
}
49+
String saltStr = salt.toString();
50+
return saltStr;
51+
}
52+
53+
static char calculationEncryptionVernam(char letterMessageEncrypt,char letterMask,char letterTab[],char letterMaskTab[]) {
54+
char myChar = 0;
55+
int resultat = 0, indiceI, indiceJ;
56+
if (searchCharInCharArrayAndReturnIndice(letterMessageEncrypt, letterTab) >= 0) {
57+
if (searchCharInCharArrayAndReturnIndice(letterMask, letterMaskTab) >= 0) {
58+
indiceI = searchCharInCharArrayAndReturnIndice(letterMessageEncrypt, letterTab);
59+
indiceJ = searchCharInCharArrayAndReturnIndice(letterMask, letterMaskTab);
60+
61+
System.out.println("Indice I " + indiceI);
62+
System.out.println("Indice J " + indiceJ);
63+
64+
resultat = indiceI + indiceJ;
65+
if (resultat > letterMaskTab.length) {
66+
resultat = resultat - (letterMaskTab.length + 1);
67+
myChar = letterMaskTab[resultat];
68+
}else {
69+
myChar = letterMaskTab[resultat];
70+
}
71+
}
72+
}
73+
74+
return myChar;
75+
}
76+
77+
static char calculationEncryptionVernam2(char letterMessageEncrypt,char letterMask,char letterTab[],char letterMaskTab[]) {
78+
char myChar = 0;
79+
int resultat = 0;
80+
for (int i = 0; i < letterTab.length; i++) {
81+
System.out.println(letterMessageEncrypt);
82+
if (letterMessageEncrypt == letterTab[i] ) {
83+
System.out.println(i + " , " + letterTab[i]);
84+
System.out.println(letterMessageEncrypt);
85+
for (int j = 0; j < letterMaskTab.length; j++) {
86+
if (letterMask == letterMaskTab[j]) {
87+
System.out.println(i + " , " + letterMaskTab[j]);
88+
resultat = i + j;
89+
if (resultat > letterMaskTab.length) {
90+
resultat = resultat - (letterMaskTab.length + 1);
91+
myChar = letterMaskTab[resultat];
92+
}else {
93+
myChar = letterMaskTab[resultat];
94+
}
95+
break;
96+
}
97+
}
98+
break;
99+
}
100+
}
101+
return myChar;
102+
}
103+
104+
static String encryptionMessageAvecVernamOLD(String messageAEncrypt) {
105+
char lettreAlphabetTableau[] = {'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '�', '�', '�', '�', '�', '-', '.', '�', ',', ' ', '\''};
106+
char messageAEncryptTab[];
107+
messageAEncryptTab = messageAEncrypt.toCharArray();
108+
for (int i = 0; i < lettreAlphabetTableau.length; i++) {
109+
System.out.println(i);
110+
}
111+
System.out.println("Random characters based on size " + messageAEncrypt.length());
112+
String messageGenerer = getSaltString(messageAEncrypt.length());
113+
System.out.println("Message generate " + messageGenerer);
114+
System.out.println("Generate message size " + messageGenerer.length());
115+
return null;
116+
}
117+
118+
static int searchCharInCharArrayAndReturnIndice(char c, char letterTab[]) {
119+
boolean contains = false;
120+
int indice = -1;
121+
for (int i = 0; i < letterTab.length; i++) {
122+
if (letterTab[i] == c) {
123+
contains = true;
124+
indice = i;
125+
break;
126+
}
127+
}
128+
return indice;
129+
}
130+
131+
static void displayAlphabetWithIndiceInArray(char alphabetArray[]) {
132+
for (int i = 0; i < alphabetArray.length; i++) {
133+
System.out.print(i + "(" + alphabetArray[i] + ") , ");
134+
}
135+
}
136+
137+
}
Binary file not shown.
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package service;
2+
3+
public class EncryptionService {
4+
5+
/*
6+
* Pour le chiffrement des dix caract�res sp�ciaux que j'ai choisie � � � � � - . � , espace, '
7+
* Je les chiffre en entier de 0 � 9 mais de fa�on invers� sans logique
8+
* 0123456789 => 9180726354 dont � est 9 et � est 1 ainsi de suite...
9+
* le caract�re ' est �
10+
*/
11+
private char lettreAlphabetTable[] = {'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '�', '�', '�', '�', '�', '-', '.', '�', ',', ' ', '\''};
12+
private char lettreAlphabetTablePermuter[] = {'t', 'g', 'j', 'p', 'o', 'i', 'z', 's', 'k', 'b', 'v', 'm', 'd', 'h', 'a', 'y', 'w', 'f', 'c', 'q', 'u', 'x', 'n', 'r', 'l', 'e', '9', '1', '8', '0', '7', '2', '6', '3', '5', '4', '�'};
13+
private char wordEncryptTab[];
14+
15+
public String algoEncryptionText(String textAEncrypt) {
16+
17+
wordEncryptTab = textAEncrypt.toCharArray();
18+
StringBuilder myWordEncryptBuilder = new StringBuilder();
19+
20+
for (char l : wordEncryptTab){
21+
char a = charISPresentEncryption(l,lettreAlphabetTable,lettreAlphabetTablePermuter);
22+
myWordEncryptBuilder.append(a);
23+
}
24+
System.out.println(myWordEncryptBuilder.toString());
25+
26+
return myWordEncryptBuilder.toString();
27+
}
28+
29+
public String algoDecryptionText(String textADecrypt) {
30+
wordEncryptTab = textADecrypt.toCharArray();
31+
StringBuilder mywordDecryptBuilder = new StringBuilder();
32+
33+
for (char l : wordEncryptTab){
34+
char a = charISPresentDecryption(l,lettreAlphabetTablePermuter,lettreAlphabetTable);
35+
mywordDecryptBuilder.append(a);
36+
}
37+
System.out.println(mywordDecryptBuilder.toString());
38+
39+
return mywordDecryptBuilder.toString();
40+
}
41+
42+
private char charISPresentEncryption(char letter,char letterTab[],char letterPermuteTab[]){
43+
char myChar = 0;
44+
for (int i = 0; i < letterTab.length; i++) {
45+
if (letterTab[i] == letter) {
46+
for (int j = 0;j < letterPermuteTab.length; j++){
47+
j = i;
48+
myChar = letterPermuteTab[j];
49+
System.out.println("My char est " + myChar);
50+
System.out.println(letterTab[i] + " permuter donne " + letterPermuteTab[j]);
51+
break;
52+
}
53+
break;
54+
}
55+
}
56+
return myChar;
57+
}
58+
59+
private char charISPresentDecryption(char letter,char letterPermuteTab[],char letterTab[]){
60+
char myChar = 0;
61+
for (int i = 0; i < letterPermuteTab.length; i++) {
62+
if (letterPermuteTab[i] == letter) {
63+
for (int j = 0;j < letterTab.length;j++){
64+
j = i;
65+
myChar = letterTab[j];
66+
System.out.println("My char est " + myChar);
67+
System.out.println(letterPermuteTab[i] + " dechiffrer donne " + letterTab[j]);
68+
break;
69+
}
70+
break;
71+
}
72+
}
73+
return myChar;
74+
}
75+
}

0 commit comments

Comments
 (0)