begin process at 2010 02 10 11:19:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

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

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


 Information sur la source

Note :
9,17 / 10 - par 6 personnes
9,17 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Source .NET ( DotNet ) Classé sous :cryptage, texte, rijndael Niveau :Débutant Date de création :27/05/2004 Date de mise à jour :27/05/2004 17:03:10 Vu / téléchargé :14 394 / 1 480

Auteur : shinkan

Ecrire un message privé
Site perso
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note

 Description

Bonjour,

Je mets ici à disposition un namespace (CryptageTexte) contenant la classe Crypto utilisant la méthode de Rijndael fournie par .NET pour Crypter() et Decrypter() des chaines de caractères avec une clef 128bits et un "vecteur d'initialisation" 128 bits.
La source est abondamment commentée, j'ai également joint un schéma de la méthode Crypter() au format .gif afin, je l'expère, d'aider le plus de monde possible dans la conception nouvelle de la cryptographie sous .NET

Le .zip contient le fichier CryptageTexte.cs et le fichier Schema.gif

Source

  • /*
  • Voici comment utiliser le namespace, sa classe, et
  • ses méthodes sous C#.
  • Namespace : CryptageTexte
  • Classe : Crypto
  • Méthodes : Crypter(), Decrypter()
  • Ce code suppose que vous ayez placé le fichier
  • CrypterTexte.cs à la racine de votre projet
  • (généralement avec Assembly.cs et Form1.cs).
  • */
  • // Creation d'un objet de la classe pour utiliser les méthodes.
  • CrypterTexte.Crypto cryptage = new CrypterTexte.Crypto();
  • // Utilisation de la méthode Crypter() :
  • string resultat = cryptage.Crypter("je marque ici le texte à crypter");
  • // Affichage du résultat :
  • IO.Console.Out.WriteLine(resultat);
  • // Utilisation de la methode Decrypter() :
  • string resultat2 = cryptage.Decrypter(cryptage.Crypter("je marque ici un texte"));
  • // Affichage du résultat :
  • IO.Console.Out.WriteLine(resultat2);
/*
 Voici comment utiliser le namespace, sa classe, et 
 ses méthodes sous C#.
 Namespace : CryptageTexte
 Classe : Crypto
 Méthodes : Crypter(), Decrypter()
 Ce code suppose que vous ayez placé le fichier 
 CrypterTexte.cs à la racine de votre projet 
 (généralement avec Assembly.cs et Form1.cs).
*/

// Creation d'un objet de la classe pour utiliser les méthodes.
CrypterTexte.Crypto cryptage = new CrypterTexte.Crypto();

// Utilisation de la méthode Crypter() :
string resultat = cryptage.Crypter("je marque ici le texte à crypter");
// Affichage du résultat :
IO.Console.Out.WriteLine(resultat);

// Utilisation de la methode Decrypter() :
string resultat2 = cryptage.Decrypter(cryptage.Crypter("je marque ici un texte"));
// Affichage du résultat :
IO.Console.Out.WriteLine(resultat2);

 Conclusion

Evidemment, dans un contexte d'utilisation "normal", vous n'utiliserez normalement jamais cryptage.Decrypter(cryptage.Crypter("je marque ici un texte").
Ce sera plutôt cryptage.Decrypter(donneeCrypteeLueDansUnTexte) ...

Bon courage aux débutants, comme moi !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) VISIONNEUSE (JPEG, GIF, WMF, BMP) D'IMAGES TRES SIMPLE POUR ...

 Sources de la même categorie

Source .NET (Dotnet) CLASS POUR LES LOGIN par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) CALCUL D'EMPREINTES DE FICHIERS par lex35
Source avec Zip Source .NET (Dotnet) UTILISER (ET SIMPLIFIER) UN READERWRITERLOCKSLIM AVEC USING ... par TheManu
Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATEUR DE CLÉS (KEYGEN) AVEC CLÉ PUBLIQUE ET PRIVÉE ET G... par stalmar
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTAGE PAR CESAR par youma85

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) ASCII ART MAKER - CONVERSION IMAGE - TEXTE (ASCII ART) par MaxSoldier
Source avec Zip Source avec une capture Source .NET (Dotnet) TRAITEMENT DE TEXTE par thebestdrummer
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTAGE PAR CESAR par youma85
Source avec Zip Source avec une capture Source .NET (Dotnet) CAPTCHA [VS 2005] par DelphiCool
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTO MANAGER par mastercatz

Commentaires et avis

Commentaire de fabrice69 le 01/06/2004 13:55:44 administrateur CS

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___

Commentaire de georgeduke le 02/04/2005 18:00:13

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 ?

Commentaire de shinkan le 14/04/2005 22:50:15

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 ^^

Commentaire de whithix le 04/03/2006 20:24:34

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

Commentaire de laurentzic le 09/06/2006 16:31:30

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

Commentaire de larbon le 18/07/2006 10:24:16

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 ;-)

Commentaire de Micro le 28/07/2006 18:00:56

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 !!!

Commentaire de Kleidp le 17/08/2006 00:06:10

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.

Commentaire de marcel6566 le 29/08/2006 10:02:44

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

Commentaire de Micro le 29/08/2006 10:47:29

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.

Commentaire de marcel6566 le 03/09/2006 14:50:06

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

Commentaire de Micro le 04/09/2006 18:14:47

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.

Commentaire de marcel6566 le 05/09/2006 19:00:47

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

Commentaire de Micro le 05/09/2006 20:21:54

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é.

Commentaire de marcel6566 le 17/10/2006 00:11:17

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

Commentaire de Jay21 le 17/10/2006 13:15:29

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.

Commentaire de Geolem le 29/10/2006 19:15:16

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.

Commentaire de UNi le 24/04/2007 15:23:34

Trés bonne source, c'est exactement ce que je recherché

Commentaire de jesustic le 08/06/2007 16:38:11

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 ???



Commentaire de DeadEye0112 le 30/07/2007 17:59:48

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...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Erreur lors de mon décryptage [ par likemuz25 ] Voila du code que je test et que j'ai changé un peu. Mon cryptage fonctionne, mais j'ai des problèmes dans mon décryptage et j'aurais besoin de votre probleme de comunication de font entre deux richtextbox [ par MSisen ] Bonjour, je suis débutant en .net et n'y connait pas grand chose je voudrais passer un texte d'une richtextbox à un touches f1 à f12 [ par micam ] Bonjour,Je développe une petite application qui envoie du texte dans une autre application genre notepad.J'aimerai utiliser les touches de F1 à F12 po Mettre du texte en forme dans Word avec C# [ par johnaliashead ] bonjour, j'aimerai savoir si quelqu'un pourrai m'expliquer comment mettre en page du texte dans word? du genre comment passer des lignes, faire des problème avec textBox [ par dourida ] Salut J'ai un grand problème avec le textBox en C#. je transforme un texte à un tableau de byte pour que je puisse le chiffrer avec AES, puis j'affic synthèse vocale [ par dourida ] Salut Comment je peux lire un texte en utilisant une voix (cad réaliser un dicté d'un texte par une voix) dans l'emulateur pocket pc 2003. Merci comment faire une zone de texte pour un mot de passe? [ par trublue ] salut a vous,j'ai fait une fenetre qui contient deux champs de texte a saisir l'un des champ est fait pour un mot de passe.je veux savoir comment je f Comment faire un editeur du texte avec les controleurs de open office ? [ par Onasismg ] [b]Je veux faire un editeur de texte dans C# que me permet de faire tout ce que on peut faire dans office ou open office, quelq'un qui m'aide??? [/b] Problème cryptage app.config [ par T103 ] Bonjour, Je n'arrive pas à crypter le userSettings qui se trouve dans mon fichier app.config, j'ai réussi a crypter ma chaine de connexion mais pour le même événement pour tous les textBox [ par petercrouch ] Bonjour, j'ai un form contenant plusieurs textBox(une trentaine) et pour chaque textBox la même méthode relative à l'événement textChanged. [code=cs]


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales