bonjour, j'ai un problème j'ai fais un algorithme sur flowgorithm de chiffrage asymétrique mais quand je le convertie en Arduino ça ne marche plus pourriez vous regarder et m'aider svp
Code arduino:
code_MA2.ino (2,8 Ko)
bonjour, j'ai un problème j'ai fais un algorithme sur flowgorithm de chiffrage asymétrique mais quand je le convertie en Arduino ça ne marche plus pourriez vous regarder et m'aider svp
Code arduino:
code_MA2.ino (2,8 Ko)
outils de dechiffrement : RSA algorithm-decrypt - Replit
pseudo code flowgorithm:
#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <cmath>
#include <ctime>
using namespace std;
// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int chiffrer(int m, int e);
int cleAgent(string x);
int modexp(int a, int e, int n);
int main() {
srand(time(0)); //Seed random number generator
int e, m, mp, c;
string x;
cout << "Identifiez-vous." << endl;
cin >> x;
m = rand() % 2881;
e = cleAgent(x);
c = chiffrer(m, e);
cout << "Message à déchiffrer :" << c << endl;
cin >> mp;
if (m == mp) {
cout << "Vous êtes authentifié! Bienvenue agent" << x << endl;
} else {
cout << "Erreur d'authentification, le système de sécurité se déclenchera dans 5 secondes" << endl;
}
return 0;
}
int chiffrer(int m, int e) {
int n, c;
n = 43 * 67;
c = modexp(m, e, n);
return c;
}
int cleAgent(string x) {
int e[16];
e[0] = 601;
e[1] = 619;
e[2] = 631;
e[3] = 641;
e[4] = 647;
e[5] = 653;
e[6] = 661;
e[7] = 673;
e[8] = 691;
e[9] = 701;
e[10] = 733;
e[11] = 739;
e[12] = 751;
e[13] = 797;
e[14] = 809;
e[15] = 811;
int i;
if (x == "A") {
i = 0;
} else {
if (x == "B") {
i = 1;
} else {
if (x == "C") {
i = 2;
} else {
if (x == "D") {
i = 3;
} else {
if (x == "E") {
i = 4;
} else {
if (x == "F") {
i = 5;
}
}
}
}
}
}
if (x == "H") {
i = 6;
} else {
if (x == "I") {
i = 7;
} else {
if (x == "J") {
i = 8;
} else {
if (x == "K") {
i = 9;
} else {
if (x == "L") {
i = 10;
}
}
}
}
}
if (x == "M") {
i = 11;
} else {
if (x == "N") {
i = 12;
} else {
if (x == "O") {
i = 13;
} else {
if (x == "P") {
i = 14;
} else {
if (x == "Q") {
i = 15;
}
}
}
}
}
int u;
u = e[i];
return u;
}
int modexp(int a, int e, int n) {
int r;
if (e < 0) {
cout << "unhandled case" << endl;
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;
}
// The following implements type conversion functions.
string toString (double value) { //int also
stringstream temp;
temp << value;
return temp.str();
}
int toInt (string text) {
return atoi(text.c_str());
}
double toDouble (string text) {
return atof(text.c_str());
}
Bonjour,
Merci de prendre quelques minutes pour lire les bonnes pratiques du forum francophone et de les appliquer.
En particulier la partie mise en forme du code
Bonjour
Le programme pérsenté 'est pas un programme conforme à la struecture des fichiers .ino
voir ici où le sujet est actuellement traitée en réponse à une question posée avec le pseudo ahocke ![]()
https://forum.arduino.cc/t/utiliser-un-programme-en-c-sur-arduino/1051882/27
Pas de doublons sur ce forum , pour éviter la dispersion des réponses à un même sujet et le risque de perte de temps des aidants -> Fil clos