Code du projet :
String toString(double value);
int toInt(String text);
double toDouble(String text);
int chiffrer(int mDP, int e);
void choisir();
int cleAgent(String x);
void mA1();
void mA2();
void mA3();
void mA4();
void mA5();
int modexp(int a, int e, int n);
void niveausecurite1();
void niveausecurite2();
void niveausecurite3();
void niveausecurite4();
void niveausecurite5();
void setup() {
Serial.begin(9600);
}
void loop() {
int modele;
int w;
int niveau;
Serial.println("veuillez entrer numéro carte");
while (!Serial.available()) {}
w = Serial.parseInt();
int o[16] = {8, 7, 7, 6, 6, 6, 5, 4, 4, 4, 3, 3, 3, 2, 2, 1};
modele = o[w - 1];
int nivsecu[8] = {3, 1, 4, 2, 5, 3, 5, 2};
niveau = nivsecu[modele - 1];
if (niveau == 1) {
niveausecurite1();
}
if (niveau == 2) {
niveausecurite2();
}
if (niveau == 3) {
niveausecurite3();
}
if (niveau == 4) {
niveausecurite4();
}
if (niveau == 5) {
niveausecurite5();
}
}
int chiffrer(int mDP, int e) {
int n, c;
n = 43 * 67;
c = modexp(mDP, e, n);
return c;
}
void choisir() {
int nombre;
nombre = random(2881);
Serial.println(nombre);
}
int cleAgent(String x) {
int a, e;
a = 0;
e = 0;
String agent[16] = {"A", "B", "C", "D", "E", "F", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q"};
int s[16] = {601, 619, 631, 641, 647, 653, 661, 673, 691, 701, 733, 739, 751, 797, 809, 811};
while (a != 16) {
if (agent[a] == x) {
e = s[a];
a = a + 1;
} else {
a = a + 1;
}
}
return e;
}
void mA1() {
int r;
Serial.println("Quelle Président de la république française est née en 1955 ?");
Serial.println("1-Jacques Chirac");
Serial.println("2-Nicolas Sarkozy");
Serial.println("3-Emmanuel Macron");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 2) {
Serial.println("Étape d'autentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui est le créateur de Microsoft ?");
Serial.println("1-Mark Zuckerberg");
Serial.println("2-Steve Jobs");
Serial.println("3-Bill Gates");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 3) {
Serial.println("Étape d'autentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui raconte les aventures de Sherlock Holmes ?");
Serial.println("1-Docteur Watson");
Serial.println("2-Professeur Moriarty");
Serial.println("3-L'inspecteur Lestrade");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 1) {
Serial.println("Étape d'autentification réussie");
} else {
Serial.println("Faux");
}
}
void mA2() {
int e, mDP, mp, c;
String x;
Serial.println("identifiez-vous:");
while (!Serial.available()) {}
x = Serial.readString();
mDP = random(2881);
e = cleAgent(x);
c = chiffrer(mDP, e);
Serial.println("Message à déchiffrer:" + String(c));
while (!Serial.available()) {}
mp = Serial.parseInt();
if (mDP == mp) {
Serial.println("Vous êtes authentifié! Bienvenue agent " + x);
} else {
Serial.println("Erreur d'authentification, le système de sécurité se déclenchera dans 5 secondes");
}
}
void mA3() {
int s3;
bool sR;
Serial.println("Veuillez présenter votre oeil (TRUE or FALSE)");
while (!Serial.available()) {}
sR = Serial.read() == 'T';
if (sR) {
Serial.println("Authentification réussies");
} else {
Serial.println("Erreur, l'accès au coffre se bloque 5 secondes");
}
}
void mA4() {
int s4;
bool sC;
Serial.println("Veuillez présenter votre oeil (TRUE or FALSE)");
while (!Serial.available()) {}
sC = Serial.read() == 'F';
if (!sC) {
Serial.println("Authentification réussies");
} else {
Serial.println("Erreur, l'accès au coffre se bloque 5 secondes");
}
}
void mA5() {
String x;
int ncard;
int i;
i = 0;
String agent[16] = {"A", "B", "C", "D", "E", "F", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q"};
int cardid[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
Serial.println("Veuillez entrer votre nom d'agent");
while (!Serial.available()) {}
x = Serial.readString();
while (i != 16) {
if (x == agent[i]) {
Serial.println("Veuillez entrer votre CARD_ID");
while (!Serial.available()) {}
ncard = Serial.parseInt();
if (ncard == cardid[i]) {
Serial.println("Bienvenue agent " + x);
i = i + 1;
} else {
}
} else {
i = i + 1;
}
}
}
int modexp(int a, int e, int n) {
int r;
if (e < 0) {
Serial.println("unhandled case");
exit(-1);
}
if (a == 0 || n == 1) {
r = 0;
} else {
r = 1;
while (e > 0) {
r = r * (a % n) % n;
e = e - 1;
}
}
return r;
}
void niveausecurite1() {
int r;
Serial.println("Quelle Président de la république française est née en 1955 ?");
Serial.println("1-Jacques Chirac");
Serial.println("2-Nicolas Sarkozy");
Serial.println("3-Emmanuel Macron");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 2) {
Serial.println("Étape d'autentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui est le créateur de Microsoft ?");
Serial.println("1-Mark Zuckerberg");
Serial.println("2-Steve Jobs");
Serial.println("3-Bill Gates");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 3) {
Serial.println("Étape d'autentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui raconte les aventures de Sherlock Holmes ?");
Serial.println("1-Docteur Watson");
Serial.println("2-Professeur Moriarty");
Serial.println("3-L'inspecteur Lestrade");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 1) {
Serial.println("Étape d'autentification réussie");
int s3;
bool sR;
Serial.println("Veuillez présenter votre oeil (TRUE or FALSE)");
while (!Serial.available()) {}
sR = Serial.read() == 'T';
if (sR) {
Serial.println("Authentification réussies");
} else {
Serial.println("Erreur, l'accès au coffre se bloque 5 secondes");
}
} else {
Serial.println("Faux");
}
}
void niveausecurite2() {
int r;
Serial.println("Quel président de la République française est né en 1955 ?");
Serial.println("1-Jacques Chirac");
Serial.println("2-Nicolas Sarkozy");
Serial.println("3-Emmanuel Macron");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 2) {
Serial.println("Étape d'authentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui est le créateur de Microsoft ?");
Serial.println("1-Mark Zuckerberg");
Serial.println("2-Steve Jobs");
Serial.println("3-Bill Gates");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 3) {
Serial.println("Étape d'authentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui raconte les aventures de Sherlock Holmes ?");
Serial.println("1-Docteur Watson");
Serial.println("2-Professeur Moriarty");
Serial.println("3-L'inspecteur Lestrade");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 1) {
Serial.println("Étape d'authentification réussie");
bool sC;
Serial.println("Veuillez présenter votre doigt (TRUE or FALSE)");
while (!Serial.available()) {}
sC = Serial.readStringUntil('\n') == "TRUE";
if (sC == true) {
Serial.println("Authentification réussie");
} else {
Serial.println("Erreur, l'accès au coffre se bloque 5 secondes");
}
} else {
Serial.println("Faux");
}
}
void niveausecurite3() {
int e, mDP, mp, c;
String x;
Serial.println("Identifiez-vous:");
while (!Serial.available()) {}
x = Serial.readString();
mDP = random(2881);
e = cleAgent(x);
c = chiffrer(mDP, e);
Serial.println("Message à déchiffrer:" + String(c));
while (!Serial.available()) {}
mp = Serial.parseInt();
if (mDP == mp) {
Serial.println("Vous êtes authentifié! Bienvenue agent " + x);
String z;
int ncard;
int i;
i = 0;
String agent[16];
agent[0] = "A";
agent[1] = "B";
agent[2] = "C";
agent[3] = "D";
agent[4] = "E";
agent[5] = "F";
agent[6] = "H";
agent[7] = "I";
agent[8] = "J";
agent[9] = "K";
agent[10] = "L";
agent[11] = "M";
agent[12] = "N";
agent[13] = "O";
agent[14] = "P";
agent[15] = "Q";
int cardid[16];
cardid[0] = 1;
cardid[1] = 2;
cardid[2] = 3;
cardid[3] = 4;
cardid[4] = 5;
cardid[5] = 6;
cardid[6] = 7;
cardid[7] = 8;
cardid[8] = 9;
cardid[9] = 10;
cardid[10] = 11;
cardid[11] = 12;
cardid[12] = 13;
cardid[13] = 14;
cardid[14] = 15;
cardid[15] = 16;
Serial.println("Veuillez entrer votre nom d'agent");
while (!Serial.available()) {}
z = Serial.readString();
while (i != 16) {
if (z == agent[i]) {
Serial.println("Veuillez entrer votre CARD_ID");
while (!Serial.available()) {}
ncard = Serial.parseInt();
if (ncard == cardid[i]) {
Serial.println("Bienvenue agent " + z);
i = i + 1;
} else {
// Gérer le CARD_ID incorrect
}
} else {
i = i + 1;
}
}
} else {
Serial.println("Erreur d'authentification, le système de sécurité se déclenchera dans 5 secondes");
}
}
void niveausecurite4() {
int e, mDP, mp, c;
String x;
Serial.println("Identifiez-vous:");
while (!Serial.available()) {}
x = Serial.readString();
mDP = random(2881);
e = cleAgent(x);
c = chiffrer(mDP, e);
Serial.println("Message à déchiffrer:" + String(c));
while (!Serial.available()) {}
mp = Serial.parseInt();
if (mDP == mp) {
Serial.println("Vous êtes authentifié! Bienvenue agent " + x);
int s3;
bool sR;
Serial.println("Veuillez présenter votre oeil (TRUE or FALSE)");
while (!Serial.available()) {}
sR = Serial.readStringUntil('\n') == "TRUE";
if (sR == true) {
Serial.println("Authentification réussie");
int s4;
bool sC;
Serial.println("Veuillez présenter votre oeil (TRUE or FALSE)");
while (!Serial.available()) {}
sC = Serial.readStringUntil('\n') == "TRUE";
if (sC == false) {
Serial.println("Authentification réussie");
} else {
Serial.println("Erreur, l'accès au coffre se bloque 5 secondes");
}
} else {
Serial.println("Erreur, l'accès au coffre se bloque 5 secondes");
}
} else {
Serial.println("Erreur d'authentification, le système de sécurité se déclenchera dans 5 secondes");
}
}
void niveausecurite5() {
int r;
Serial.println("Quel président de la République française est né en 1955 ?");
Serial.println("1-Jacques Chirac");
Serial.println("2-Nicolas Sarkozy");
Serial.println("3-Emmanuel Macron");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 2) {
Serial.println("Étape d'authentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui est le créateur de Microsoft ?");
Serial.println("1-Mark Zuckerberg");
Serial.println("2-Steve Jobs");
Serial.println("3-Bill Gates");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 3) {
Serial.println("Étape d'authentification réussie");
} else {
Serial.println("Faux");
}
Serial.println("Qui raconte les aventures de Sherlock Holmes ?");
Serial.println("1-Docteur Watson");
Serial.println("2-Professeur Moriarty");
Serial.println("3-L'inspecteur Lestrade");
while (!Serial.available()) {}
r = Serial.parseInt();
if (r == 1) {
Serial.println("Étape d'authentification réussie");
int e, mDP, mp, c;
String x;
Serial.println("Identifiez-vous:");
while (!Serial.available()) {}
x = Serial.readString();
mDP = random(2881);
e = cleAgent(x);
c = chiffrer(mDP, e);
Serial.println("Message à déchiffrer:" + String(c));
while (!Serial.available()) {}
mp = Serial.parseInt();
if (mDP == mp) {
Serial.println("Vous êtes authentifié! Bienvenue agent " + x);
int s3;
bool sR;
Serial.println("Veuillez présenter votre oeil (TRUE or FALSE)");
while (!Serial.available()) {}
sR = Serial.readStringUntil('\n') == "TRUE";
if (sR == true) {
Serial.println("Authentification réussie");
String z;
int ncard;
int verif;
int i;
i = 0;
String agent[16];
agent[0] = "A";
agent[1] = "B";
agent[2] = "C";
agent[3] = "D";
agent[4] = "E";
agent[5] = "F";
agent[6] = "H";
agent[7] = "I";
agent[8] = "J";
agent[9] = "K";
agent[10] = "L";
agent[11] = "M";
agent[12] = "N";
agent[13] = "O";
agent[14] = "P";
agent[15] = "Q";
int cardid[16];
cardid[0] = 1;
cardid[1] = 2;
cardid[2] = 3;
cardid[3] = 4;
cardid[4] = 5;
cardid[5] = 6;
cardid[6] = 7;
cardid[7] = 8;
cardid[8] = 9;
cardid[9] = 10;
cardid[10] = 11;
cardid[11] = 12;
cardid[12] = 13;
cardid[13] = 14;
cardid[14] = 15;
cardid[15] = 16;
Serial.println("Veuillez entrer votre nom d'agent");
while (!Serial.available()) {}
z = Serial.readString();
while (i != 16) {
if (z == agent[i]) {
Serial.println("Veuillez entrer votre CARD_ID");
while (!Serial.available()) {}
ncard = Serial.parseInt();
if (ncard == cardid[i]) {
Serial.println("Bienvenue agent " + z);
i = i + 1;
} else {
// Gérer le CARD_ID incorrect
}
} else {
i = i + 1;
}
}
} else {
Serial.println("Erreur, l'accès au coffre se bloque 5 secondes");
}
} else {
Serial.println("Erreur d'authentification, le système de sécurité se déclenchera dans 5 secondes");
}
} else {
Serial.println("Faux");
}
}
String toString(double value) {
return String(value);
}
int toInt(String text) {
return text.toInt();
}
double toDouble(String text) {
return text.toDouble();
}