2010-09-29 4 views
0

gars Eh bien, je suis un peu d'un cornichon ici ...lecture d'un fichier binaire sous forme de texte et de les manipuler ... [C#] Versus [VB.NET]

Je fais quelques exercices sur le chiffrement des données . L'un d'entre eux sont des fichiers binaires. Je suis actuellement en utilisant triple DES pour crypter et décrypter les fichiers à la fois dans VB.NET et C# ...

Maintenant, la chose est, une fois qu'il est déchiffré dans VB.NET et enregistré, je peux l'exécuter à nouveau ...

Mais pour une raison quelconque, mon fichier C# est plus grand! 20,4K où VB.NET est 19,0. Le fichier C# est également rendu inexécutable ...

À regarder de plus près. Les fichiers semblent presque exactement les mêmes, mais C# semble ajouter quelques octets supplémentaires ici et là dans des endroits (apparemment) aléatoires ...

J'utilise actuellement File.ReadAllText (String filepath, Encoding encoding); avec le codage UTF-8

merci!

+0

Peut-être un petit bout de code et un exemple d'un « changé » ensemble de données contribuerait à stimuler une aide. – StingyJack

+0

Pouvez-vous publier à la fois l'implémentation VB.NET et C# du chiffrement/décryptage? Ils sont probablement subtilement différents. – Oded

+0

SImplifiez votre code de cryptage et mettez ici sinon impossible de repérer le problème. – Aliostad

Répondre

3

Vous dites que vous utilisez File.ReadAllText ... mais aussi que ce sont binaires fichiers. Cela me fait penser que vous traitez des données binaires opaques (par exemple le résultat d'un cryptage) comme s'il s'agissait de texte (par exemple en appelant le Encoding.GetString).

Ne fais pas ça.

Fondamentalement, le cryptage fonctionne généralement sur des données binaires - binaire, en binaire. Si vous devez chiffrer du texte en texte, vous appliquerez généralement un codage "normal" pour convertir le texte en données binaires (par exemple, Encoding.UTF8.GetBytes(text)), puis utiliserez Base64 pour convertir les données binaires opaques en texte sans perte, par exemple. avec Convert.ToBase64String(encrypted). Le déchiffrement est exactement l'inverse: utilisez Convert.FromBase64String(encryptedText) pour obtenir les données binaires cryptées, décryptez-les, puis utilisez Encoding.UTF8.GetString(decrypted) pour revenir au texte.

Questions connexes