CLASSE DE CRYPTAGE DE TEXTE SIMPLE PAR LA METHODE DE RIJNDAEL, COMMENTEE POUR DE

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 - 1 juin 2004 à 13:55
DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 - 30 juil. 2007 à 17:59
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23190-classe-de-cryptage-de-texte-simple-par-la-methode-de-rijndael-commentee-pour-debutants

DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 1
30 juil. 2007 à 17:59
Effectivement plutot bonne source mais elle pète un peu sur certaines string genre "aze" comme jesustic le disait... J'ai trouvé un autre code qui fait la même et qui apparement ne pète pas. Mais malgré tout du bon boulot ^_^ Si quelqu'un a une idée de pourquoi ca pète des exceptions... Parce que j'ai regardé rapidement j'ai pas vraiment compris...
jesustic Messages postés 2 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 5 juin 2008
8 juin 2007 à 16:38
Hello tout le monde !!!

Comme vous l'avez dit, ce code est tres bien commenté, merci pour les debutants !!!!!

J'ai une erreur quand je veux decrypter une chaine de caractere.
L'erreur vient d'ici dans la fonction decrypter ----> "int BytesLus = CStream.Read(buf, 0, 100);"

CryptographicException was unhandled -> "Lenght of the data to decrypt in invalid"

Ce que je trouve étrange, c'est que, si je crypt "aez" et que je le decrypt ensuite, ca fonctionne.
mais si je crypt "aze" la fonction decrypter ne fonctionne pas.

On ne peut pas vraiment dire que ca soit un probleme de longueur de chaine de caractere :)
Et meme cryptée, la chaine de caractere qui me pose probleme semble être plus petite !!

quelqu'un aurait il une idée ???
cs_UNi Messages postés 35 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 27 avril 2009
24 avril 2007 à 15:23
Trés bonne source, c'est exactement ce que je recherché
cs_Geolem Messages postés 18 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 20 février 2008
29 oct. 2006 à 19:15
Bonjour,

Etant un vrai de vrai débutant, je souhaiterais inclure ton script (j'ai rien touché au niveau droit d'auteurs) à mon projet ASP.NET/WebServices et utiliser tes méthodes.

Alors je mets : "using CryptageTexte;" et malheureusement il dit qu'il manque quelque chose...
Erreur 1 Le type ou le nom d'espace de noms 'CryptageTexte' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

Par contre, si je copie-colle ton code dans le miens, tout va bien :(

Merci d'avance.
cs_Jay21 Messages postés 5 Date d'inscription vendredi 22 septembre 2006 Statut Membre Dernière intervention 17 octobre 2006
17 oct. 2006 à 13:15
Hello,

c'est trop fort enfin une solution qui fonctionne !!! Par contre j'aimerais savoir comment on peut décrypter une valeur crytée ?

Merci pour votre aide.

Jay.
marcel6566 Messages postés 25 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 17 octobre 2006
17 oct. 2006 à 00:11
Rebonjour Micro

Je ne comprends pas je n'arrive pas à faire fonctionner

Peux-tu me zipper tes fichiers à marcel6566@yahoo.fr

Merci par avance

Marcel
cs_Micro Messages postés 9 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 7 septembre 2009
5 sept. 2006 à 20:21
Désolé Marcel,
Je viens de revérifier le code que j'ai posé et pour moi, cela fonctionne.
si la directive "using System.IO;" est bien présente, je ne comprends pas pourquoi tu obtiens cette erreur.

Désolé.
marcel6566 Messages postés 25 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 17 octobre 2006
5 sept. 2006 à 19:00
Je n'arrive pas à faire fonctionner ton source.
J'ai le message d'erreur suivant :
D:\_Cryptage\Form1.cs(224): Le type ou le nom d'espace de noms 'StreamWriter' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?).
Poutant "using System.IO;" est bien présent.

Peux-tu m'aider ?
Merci
cs_Micro Messages postés 9 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 7 septembre 2009
4 sept. 2006 à 18:14
Bonjour Marcel,
D'après ce que je vois dans le code que tu as mis, tu as créé une classe fichier() qui gère les échanges avec ton fichier "toto.txt".
Ne sachant pas comment fonctionne cette classe, je vais te donner ce que j'ai fait et tu me diras si ça t'aide.

//************************************************************
Crypto cryp = new Cryptage.Crypto();
StreamWriter str = new StreamWriter("c:\\Toto.txt",false);

str.Write(cryp.Crypter(TextBox1.Text) + "\n\r");

str.Flush();
str.Close();

//************************************************************

Il faut savoir que les streamwriter par défaut codent en UTF-8.
Normalement, avec ce code, cela fonctionne mais il y a un petit problème (celui que j'exposais dans mon post), c'est que parfois (dépendant de la clé, du vecteur d'initialisation et du texte à crypter), l'algo génère des codes correspondants à des caractères unicodes de substitution qui ne sont pas suivit d'un caractère faible derrière ce qui lève une exception.
Malheureusement, je n'ai pas réussit à trouver la solution pour ce problème (je penses que c'est fait pour crypter des fichiers complets ou ce genre de chose et par conséquent, il faut passer par un BinaryWriter au lieu de StreamWriter) et comme c'était juste pour crypter un Mdp dans un fichier texte, je me suis orienté vers "System.Security.Cryptography.MD5CryptoServiceProvider()" qui est beaucoup plus simple.

J'espère que ça t'aidera pour ton appli.
Bon courage.
marcel6566 Messages postés 25 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 17 octobre 2006
3 sept. 2006 à 14:50
Bonjour Micro
Quand je dis "toto.txt ne contient pas les bonnes valeurs", cela signifie que le fichier contient un certain nombre de "?" délimités par des lettres de l'alphabet. OK
Mais au décryptage j'obtiens les mêmes "?".
Je pense que le codage dans le fichier "toto.txt" affecte la lettre "?" au lieu de caractères non imprimable du code ascii.

Le source pour la partie cryptage
string data;
Crypto cryp = new Cryptage.Crypto();
data = cryp.Crypter(textBox1.Text);
fichier f = new fichier();
f.creerfichier("toto.txt");
f.EcrireFile("toto.txt", data);
Le source pour la partie décryptage
Crypto cryp = new Cryptage.Crypto();
string data="";
fichier f = new fichier();
f.lirefichier("toto.txt", data);
label4.Text = cryp.Decrypter(data);

Merci pour ton aide, car pour mon appli cela me serais très utile.
Marcel
cs_Micro Messages postés 9 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 7 septembre 2009
29 août 2006 à 10:47
Bonjour Marcel,
C'est bizarre ce que tu dis car moi, ça fonctionnait très bien mis à part lorsque je tombait sur l'exception dont je parle plus.
Quand tu dis "Hélas le contenu du fichier toto.txt ne contient pas les bonnes valeurs", tu veux dire que tu as une exception levée et qui te dis "Données incorrectes" ?
Si c'est le cas, c'est un des problèmes que je n'ai jamais rencontré avec cet algo contrairement à d'autres.

Peux-tu mettre une partie de ton code pour essayer de comprendre où pourrait se trouver le problème ?

Micro.
marcel6566 Messages postés 25 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 17 octobre 2006
29 août 2006 à 10:02
Bonjour,

Débutant également, je trouve ton source très intéréssant.
Il fonctionne avec 20 caractères alphanum.
Mais de mon coté j'aurai besoin de crypter et de mettre le résutat dans un fichier.
Puis de récupérer le contenu du fichier et de le décrypter.

Hélas le contenu du fichier toto.txt ne contient pas les bonnes valeurs.
J'avais pensé à faire un fichier toto.bin, mais rien à faire.

Comment faire ?

Merci, Marcel
Kleidp Messages postés 124 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 10 février 2008
17 août 2006 à 00:06
Bonsoir,

C'est une classe vraiment pratique pour ceux ne voulant pas passer trop de temps a comprendre/réaliser le cryptage d'un texte. Malheureusement j'ai le meme probleme qu'au dessus "Length of the data to decrypt is invalid." avec par exemple : "pa4" ... dommage.
cs_Micro Messages postés 9 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 7 septembre 2009
28 juil. 2006 à 18:00
Bonjour,
D'après ce que j'ai pu lire à droite à gauche sur cet algo de cryptage, il est très puissant.
Dommage qu'il y ai des cas particuliers où ça ne fonctionne pas (Problème lors de la conversion en caractères unicodes, l'algo génère parfois des codes de caractères de substituion sans caractère faible derrière ce qui lève une exception).

Malgré tout, un grand bravo pour les commentaires présents à foison et même schéma de principe !!!
larbon Messages postés 1 Date d'inscription lundi 10 juillet 2006 Statut Membre Dernière intervention 18 juillet 2006
18 juil. 2006 à 10:24
bonjour,
j'avais moi aussi besoin de crypter des textes donc j'étais très heureuse de trouver une source aussi bien commentée.
j'ai eu les memes problèmes que whithix et laurentzic. en fait le problème c'est que cette classe crypte des chaines de caractères mais ne supporte pas les espaces.
je vais essayer de modifier le code pour que les espaces ne génèrent plus d'exceptions...
si je trouve je referais un post ;-)
laurentzic Messages postés 2 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 9 juin 2006
9 juin 2006 à 16:31
mm probleme que whithix mais avec des chaines de taille +-15 caractères mais je les lit dans un XML (pbm d'encodage??)
Une idée??
merci
whithix Messages postés 1 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 4 mars 2006
4 mars 2006 à 20:24
Salut, moi j'ai un petit souci avec ton code, ca marche pas avec beaucoup de texte !.. j'ai une exception de type :
System.Security.Cryptography.CryptographicException was unhandled
Message="Length of the data to decrypt is invalid."
Est-ce que tu pourrais voir d'ou vient le problème, j'ai grandement besoin de cette fonction.
Grand merci par avance !

Stéphane
shinkan Messages postés 14 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 14 avril 2005
14 avril 2005 à 22:50
OUarf !
Je viens de relire ce truc, je me rapelais même plsu avoir fait ça !
Faut dire que je suis passé au C# après une initiation au C++ quand j'étais en terminale, depuis ya eu le début d'iut, l'apprentissage formel d'autres langages ... et je me rappelle plus de rien c'est impresionnant ^^
Mais je m'y remet et je compte bien vous fournir mieux que ça ^^
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007
2 avril 2005 à 18:00
Ouep ! C'est bien sympa ! Débutant également, je cherchais quelque chose de simple pour gérer le cryptage de mot de passe dans une de mes applis... et j'ai trouvé sans perdre de temps grace à toi !

Pour que ta source soit (encore) plus sympa et ludique, que dirais-tu d'y ajouter une petite interface graphique minimaliste ?
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
1 juin 2004 à 13:55
Excellente idée pour le cryptage.
Je vais voir ce que ca donne et si c'est plus interressant que celle que j'utilisais jusqu'à maintenant je garde.

F___
Rejoignez-nous