CLASSE POUR CRYPTER/DÉCRYPTER SIMPLEMENT UNE CHAÎNE DE CARACTÈRES

cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015 - 29 janv. 2005 à 09:45
thoor72 Messages postés 1 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 17 août 2007 - 17 août 2007 à 16:57
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/29150-classe-pour-crypter-decrypter-simplement-une-chaine-de-caracteres

thoor72 Messages postés 1 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 17 août 2007
17 août 2007 à 16:57
effectivament y a une erreur dans public string Decrypt(string base64String)
{
return this.Decrypt(base64String);
}

faut mettre return this.Decrypt(base64String , "");
cs_RJMS Messages postés 6 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 6 novembre 2007
23 mai 2007 à 09:18
Bonjour !

J'obtiens enu StackOverFlow Exception quand je tente de décrypter une chaîne cryptée avec l'autre méthode (encrypt)

L'exception se passe au niveau de cette méthode (base64String)

public string Decrypt(string base64String)
{
return this.Decrypt(base64String);
}
Y aurait-il une explication et un moyen de contourner ceci ?
Merci !
nseveno Messages postés 21 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 12 juin 2008
12 mai 2005 à 20:28
Merci pour ces compléments sur le mot de passe, je comprends mieux l'histoire de l'entropie maintenant.

Pour ce qui est de la classe ProtectedStorage, je ne la trouve pas. Peut être sera-t elle incluse dans le FW 2.0 ? De toutes façons ça je ne pense pas qu'il y ait une classe pour faire ça dans le FW 1.1, sinon ils ne se seraient pas fatigués à écrire un article complet sur le sujet sur MSDN Patterns & Practices...
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
11 mai 2005 à 22:10
Bien joué pour la protection de la clef. Pour la petite histoire, dans le cas du cryptage utilisateur, si vous changez le mot de passe de l'utilisateur depuis la console d'administration, la clef est irrécupérable. Ceci garantie l'impossibilité du vol des données par un administrateur. c'est pour cette raison que l'option d'entropie est ignorée : elle est inutile.
Je crois que la classe protectedstorage du framework permet d'écrire dans le fichier crypté utilisateur sans passer explicitement par les API windows.
nseveno Messages postés 21 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 12 juin 2008
31 janv. 2005 à 20:46
Merci pour tes précieux conseils Warny. C'était autant pour le FeedBack que pour partager que j'ai posté ce source. Et là je suis comblé pour la partie FeedBack :-)

Un collègue m'a déjà expliqué ce système de crypter la clé. Je posterais une nouvelle version de ma classe dès que j'aurais mis tout ça au propre...
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
29 janv. 2005 à 09:45
Tient, voila quelqu'un de bien qui ne cherche pas à réinventer la poudre.
Les deux failles de ton système sont :
- DES est quelque peu dépassé par la puissance des machines. Utilise plutot DES-3 ou AES pour crypter
-Ta clef comme tu le remarques toi-même n'est pas protégée. Utilise un cryptage asymétriqe (RSA) pour ça (tu as aussi les classes dans le framework)

Pour l'envoi d'un message :
- tu généres une clef symétrique (et totalement aléatoire)
- tu cryptes symétriquement (DES) ton message avec
- tu cryptes la clef symétrique avec la clef publique de ton correspondant (RSA)
- tu agrèges dans le message la clef symétrique crypté et le message crypté
- tu envoie le message crypté

Pour la réception
- tu extrais la clef symétrique crypté
- tu la décryptes avec la clef privée
- tu décryptes le message avec la clef symétrique décryptée
- tu peux lire ton message en clair...

Ce protocole de communication est celui qui s'applique dans PGP. On utilise ce protocole parce que c'est beaucoup trop long d'utiliser RSA sur tout le message, mais ça provoque deux points d'attaques possible. Ce qui ne veut pas dire que c'est facile à attaquer.

DES-3 ou triple DES c'est DES trois fois de suite avec 3 clefs différentes, comme tu n'utilise que 56bits de ton aglomération SHA pour faire un DES, utilise les bits suivants comme clefs pour les deuxième et troisième passages

Bonne programmation