Alors je me présente, linkamaki, cela fait bientôt 2ans que j'ai commencé à apprendre et concevoir des logiciels en C. Après avoir fait plusieurs projet personnels en console et la SDL (2D) ne m'attirant pas trop, j'ai décidé d'apprendre la bibliothèque de GTK (interface graphique,sur developpez le cour du SDZ n'étant pas achevé).
EncrypBox
Le nom a été changé, anciennement Chiffre de César
Donc je vous présente mon projet: EncrypBox . Le principe de celui-ci est de proposer différentes méthodes de chiffrement/déchiffrement. Actuellement 3 sont proposées: Chiffre de César (chiffrement par décalage), Chiffre de Vernam (masque jetable) et RSA. Je compte en rajouté d'avantages avec le temps. Le chiffre de César bénéficie de plus d'options comme enregistrement dans une fichier, décryptage d'un fichier, ... (je compte en rajouter également).
"Embellissement" du programme, description des différents zones
Ajout du déchiffrement par brute force pour le Chiffre de César
Possibilité de choisir le masque pour le Chiffre de Vernam
Ré-organisation du code
Programme + source + dll En cas de problème de dll, télécharger le runtimne de la version 1.0
Bug connu: il faut re-cliquer sur le bouton brute force pour refaire un déchiffrement et donc fermer la fenêtre à cause d'une erreur inconnue.
Correction de bug divers:
- correction concernant le chiffre de César et les clés négatifs.
- possibilité de faire plusieurs brute force avec le Chiffre de César.
- correction concernant le chiffre de Vernam et le déchiffrement ainsi que pour le masque
- algorithme RSA fonctionnel.
Au début je pense que oui, après il faut voir pour tester directement la valeur ASCII des caractères car GTK+ encode en UTF8, c'est ce qui me pose problème pour les accents.
Pour le moment je compare avec un tableau contenant l'alphabet mais je voudrais essayer en testant la valeur ASCII du caractère (A=65,B=66, ...), ce qui donnerait:
if(caractère[i] == j)
caractère[i]== j+cle
Citation
C'est pas vraiment utile le décalage de lettres comme moyen de sécurité
Je le sais ! C'est pour sa que je vais essayer de développer d'autres techniques et que je peux/veux développer une technique pour "briser" le cryptage
Citation : czerty
En même temps, je doute qu'il ai fait ça pour envoyer des messages ultra confidentiels
Exactement, c'était pour m'entrainer, avant j’utilisai les valeurs binaires (en console)
En même temps, je doute qu'il ai fait ça pour envoyer des messages ultra confidentiels
Exactement, c'était pour m'entrainer, avant j’utilisai les valeurs binaires (en console)
T'en fais pas je sais que tu compte pas envoyer des secrets du gouvernement avec ce soft
Par contre pour les binaires tu veux dire quoi ? Parce que si tu compte juste mettre ASCII => BINAIRE , c'est comme si tu faisais rien ! N'importe qui peut utiliser un lecteur binaire !
"Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
Houla, ton code ma l'air bien compliqué, pourquoi pas faire tout simplement
lettrecryptee = lettre + ((lettre + cle) % 26);
et apres tu fais juste un boucle pour parcourir le tableau d'entrée et le tableau crypté
la ca fait beaucoup de boucles et de conditions pour pas grand chose.
Et en plus, comme ça tu utilise les valeurs ASCII.
En même temps, je doute qu'il ai fait ça pour envoyer des messages ultra confidentiels
Exactement, c'était pour m'entrainer, avant j’utilisai les valeurs binaires (en console)
T'en fais pas je sais que tu compte pas envoyer des secrets du gouvernement avec ce soft
Par contre pour les binaires tu veux dire quoi ? Parce que si tu compte juste mettre ASCII => BINAIRE , c'est comme si tu faisais rien ! N'importe qui peut utiliser un lecteur binaire !
La valeur binaire des caractères
Citation
Houla, ton code ma l'air bien compliqué, pourquoi pas faire tout simplement
et apres tu fais juste un boucle pour parcourir le tableau d'entrée et le tableau crypté
la ca fait beaucoup de boucles et de conditions pour pas grand chose.
Et en plus, comme ça tu utilise les valeurs ASCII.
Le problème c'est que GTK utilise l'encodage UTF8 donc je ne sais pas si cela marche
Pour des fichiers t'es pas obligé d'utiliser les types de GTK+
Pour les valeur binaires des caractères ASCII c'est comme je l'ai dit : trop faible , regarde sur Google ou Wikipédia , il y a pas mal d'algorithmes de cryptage et il y a un tutoriel sur le SdZ
"Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
Pour des fichiers t'es pas obligé d'utiliser les types de GTK+
Pour les valeur binaires des caractères ASCII c'est comme je l'ai dit : trop faible , regarde sur Google ou Wikipédia , il y a pas mal d'algorithmes de cryptage et il y a un tutoriel sur le SdZ
Pour insérer le texte dans le champ de texte, il faut le convertir, utiliser le type gchar ou sinon il y a une erreur. Pour les valeurs binaires c'était sur une vielle version que j’avais réaliser, la première même en console.
Je viens me resseigner rapidement sur le chiffre de cesar et tu pourrais aussi utiliser une autre vesrion qui rendrait le déchiffrage plus compliqué, ça tromperai aussi sur le nombre de caractère totale en plus des espaces.
Pour ça il ne faut pas boucler l'alphabet. Arrivé à 'Z' tu ne passes pas à 'A' mais à 'AA' puis à 'AB' ect... C'est un peu plus compliqué mais rien d'insurmontable.
D'après Wiki c'est la vesrion 2 du chiffre de césar utilisé par son neveu Auguste. Voilà pour l'info.
Amuse toi bien.
Ps: Ton sujet m'a donné envi, il faut vraiment que je m'en code un en version console (linux) juste pour la forme, VIM me revoilà !
Houla, ton code ma l'air bien compliqué, pourquoi pas faire tout simplement
lettrecryptee = lettre +(lettre + cle);
et apres tu fais juste un boucle pour parcourir le tableau d'entrée et le tableau crypté
la ca fait beaucoup de boucles et de conditions pour pas grand chose.
Et en plus, comme ça tu utilise les valeurs ASCII.
J'ai testé une solution similaire mais malheureusement, comme tu peux le voir ici, les valeurs ASCII des lettres ne sont pas a=0, b=1, ... mais 97, 98, ... donc il faut faire des conditions supplémentaires:
lettre_debut = lettre - lettre % 26; // On crée une variable lettredebut qui contient la premiere lettre de l'alphabet (peu importe le codage ou l'état majuscule/minuscule
lettre_cryptée = lettre_debut + ((lettre + cle) % 26); // On transforme la lettre contenant le cractère ASCII en lettre crypptée de 0 a 26 et on lui ajoute la lettre de de référence determinée ci-dessus
lettre_debut = lettre - lettre % 26; // On crée une variable lettredebut qui contient la premiere lettre de l'alphabet (peu importe le codage ou l'état majuscule/minuscule
lettre_cryptée = lettre_debut + ((lettre + cle) % 26); // On transforme la lettre contenant le cractère ASCII en lettre crypptée de 0 a 26 et on lui ajoute la lettre de de référence determinée ci-dessus
Marche pas, le résultat est le même avant et après être passé dans la "fonction"
Tu pourrais implémenté ton cryptage RSA au lieu du cryptage de César, parce qu'il est très facile à trouver.
Si tu ne connais pas comment RSA fonctionne, tu peux regarder sur internet, sinon je peux t'aider un peu, mais il ne faut pas que tu utilises des nombres premiers trop grand au début pour ton p,q et e, sinon tu vas dépasser la limite du unsigned long et tu devra encoder tes nombres d'une autre manière, comme un tableau de byte.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.