PROTÉGER UN FICHIER XML CONTRE LES MODIFICATIONS FAITES PAR LES UTILISATEURS

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 14 janv. 2006 à 17:43
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017 - 22 janv. 2006 à 18:24
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/35579-proteger-un-fichier-xml-contre-les-modifications-faites-par-les-utilisateurs

scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
22 janv. 2006 à 18:24
vi si tu regardes bien MD5 fonctionne sur le meme principe et tu trovues sur souceforge.net les clé md5 des packages poru t'assurer qu'ils n'ont pas été modifiés par une tierce personne.
vala t'as compris le système.

En cryptage tu peux chercher Rijndael (AES) ou blowfish qui sont les 2 plus connus dans le domaine.
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
22 janv. 2006 à 18:10
Ça y est, j'ai compris, enfin je crois :)
Ça fait donc ces calculs sur tout un fichier puis ça génère une "clé" sans modifier le contenu du texte ? Je croyais que c'était du cryptage de fichier total moi, du coup c'est beaucoup plus intéressant, et c'est plus rapide en plus.
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
22 janv. 2006 à 17:43
heu, je crois que tu n'as pas compris le principe du hashage.
Il consiste à fournir une chaine de longueur fixe à partir d'un contenu de longueur variable. Il s'agit exactement de la même chose que toi à la différence près qu'autre moindre octet modifié, si tu recalcules le hashage il sera différent..
Avec ta méthode, on s'aperçoit de la modification seulement si la somme des modifications ne s'annulent pas entre elles.

En gros avec ton système : abcd = dcba ce qui est sûr n'est pas sécurisé du tout.
Cela ressemble aux checksum de contrôle qu'il y avait sur certains jeux. Le contournement était assez facile.
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
21 janv. 2006 à 20:26
C'est clair que ma méthode n'est carrément pas sécurisée et ce n'était pas mon but, moi je voulais juste mettre un verrou (pas 50 portes blindées :) ) pour rendre la modification plus difficile. Je trouve déjà ça pas mal comme protection, car elle couvre tout le fichier et le fichier reste lisible après alors qu'avec le hachage... pas trop et ça alourdis quand même pas mal le fichier je trouve.
Donc, je dirais chacun son cryptage, le hachage pour les login / mots de passe / N° de carte bleue :) ...
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
18 janv. 2006 à 03:16
additionner c'est bien mais 2+2 = 3+1
Un jour des p'tits gars ont inventé un truc génial, les tables de hashage.
Pour info Sha512 n'a pas encore été cassé pour produire des colissions volontaires ;p

// Convert plain text into a byte array.
public static string ConvertTextToSha512(string textToConvert)
{
byte[] plainTextBytes = Encoding.UTF8.GetBytes(textToConvert);
return CryptoUtility.ConvertTextToSha512 (plainTextBytes);
}

public static string ConvertTextToSha512(byte[] textToConvert)
{
// Initialize a random number generator.
//System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();

// Because we support multiple hashing algorithms, we must define
// hash object as a common (abstract) base class. We will specify the
// actual hashing algorithm class later during object creation.
System.Security.Cryptography.HashAlgorithm hash = new System.Security.Cryptography.SHA512Managed();

// Compute hash value of our plain text with appended salt.
byte[] aHashBytes = hash.ComputeHash(textToConvert);

return Convert.ToBase64String(aHashBytes);
}
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
15 janv. 2006 à 13:19
oui visual studio 2005 est en version release. Quand à la classe encryptxml je connaissait pas, merci ;)
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
15 janv. 2006 à 08:06
euh... c'est déjà en version final .net2... non ?
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
15 janv. 2006 à 01:31
Merci, mais j'attends la version finale de .net 2 pour m'y mettre, je n'ai pas visual 2005, mais je voudrais juste savoir à quoi ressemble le fichier XML après ? Si on ouvre le fichier avec un éditeur, c'est lisible ou crypté ?
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 janv. 2006 à 17:43
Dans le même ordre d'idée, en .Net 2, tu pourras te servir de la classe EncryptedXml (System.Security.Cryptography.Xml.EncryptedXml)
http://msdn2.microsoft.com/en-us/library/system.security.cryptography.xml.encryptedxml.aspx

:-)
Rejoignez-nous