Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Crypter une chaine de texte [ Système / Sécurité ] (Kaneda_Shotaro)

dimanche 29 juin 2008 à 17:43:08 | Crypter une chaine de texte

Kaneda_Shotaro

Bonjour

j'essaye de crypter du texte avec cette classe :

public static class Cryptage
    {
        public static byte[] EncryptString(string txt, string sKey)
        {
            TripleDES DES3 = new TripleDESCryptoServiceProvider();
            byte[] bs = new byte[24];
            for (int i = 0; i < DES3.Key.Length && i < sKey.Length; i++)
            {
                bs[i] = Convert.ToByte(sKey[i]);
            }
            DES3.Key = bs;
            DES3.IV = new byte[] { 1, 6, 10, 4, 2, 6, 7, 8 };
            MemoryStream ms_out = new MemoryStream();
            byte[] b_in = Encoding.Unicode.GetBytes(txt);
            ms_out.SetLength(0);
            CryptoStream encStream = new CryptoStream(ms_out, DES3.CreateEncryptor(), CryptoStreamMode.Write);
            encStream.Write(b_in, 0, b_in.Length);
            byte[] b_out = ms_out.ToArray();
            encStream.Close();
            ms_out.Close();
            return b_out;
        }
        public static string DecryptString(byte[] b_in, string sKey)
        {
            TripleDES DES3 = new TripleDESCryptoServiceProvider();
            byte[] bs = new byte[24];
            for (int i = 0; i < DES3.Key.Length && i < sKey.Length; i++)
            {
                bs[i] = Convert.ToByte(sKey[i]);
            }
            DES3.Key = bs;
            DES3.IV = new byte[] { 1, 6, 10, 4, 2, 6, 7, 8 };
            MemoryStream ms_out = new MemoryStream();
            ms_out.SetLength(0);
            CryptoStream encStream = new CryptoStream(ms_out, DES3.CreateDecryptor(), CryptoStreamMode.Write);
            encStream.Write(b_in, 0, b_in.Length);
            byte[] b_out = ms_out.ToArray();
            string result = Encoding.Unicode.GetString(b_out);
            encStream.Close();
            ms_out.Close();
            return result;
        }
    }

Mais alors que mon texte à l'origine fait 8 caractères, je me retrouve au final, lors du décryptage avec la moitié des lettres (le bonnes, c'est déjà ça) et une exception
L'exception System.Security.Cryptography.CryptographicException n'a pas été gérée = "Données incorrectes."

Où est mon erreur ? Merci.

@+, Kaneda Shotaro
Kaneda-Shotaro.com


lundi 30 juin 2008 à 09:48:11 | Re : Crypter une chaine de texte

leprov

je ne vois pas d'erreur d'algorithme, je dirais donc que ton stream a des données bufferisées au moment ou tu fait ton "ToArray". il faut donc soit que tu ferme ton stream avant le ToArray, soit que tu appelle la méthode Flush dessus



Cette discussion est classé dans : ms, out, byte, bs, des3


Répondre à ce message

Sujets en rapport avec ce message

[c#]System.DBNull [ par stiley1 ] Salut je voudrais ke kelk1 jete 1 coup d'oeuil sur ça.j'ai une appli ou je voudrais ke soit affiché seulement les images(byte) disponibles contenues d Exception GDI+ lors d'un passage d'une image dans un byte[] [ par nikochump ] Bonjour à tous,J'ai un pti problème avec une partie d'un code et j'aimerais avoir votre avis sur la question.J'essaye de mettre dans un byte[] une ima creation d'une fenêtre similaire à ms word :csharp [ par lolarivo ] probleme:  C#:Je doit créer une application contenant:_ une fenêtre (similaire à ms word :Dans le sens ou elle  doit contenir un bouton en liaison a u Accés dll C via C# [ par nnicolas ] Bonjour, Je rencontre une Exception AccesViolation lorsque j'appelle une méthode de la dll c via mon prog en c#.La méthode appelée à pour argument une Problème sur oDoc.Utility.GetEntity(out out1, out out2, s); [ par Difre1732 ] Bonjour, Quand je veux récupérer l'objet entité, il me retoure que mon objet est un objet COM mais de valeur NULL, à côté de ça, il me retourne le tab Datarepeater +UserControl [ par drcmomo ] Bonjour tout le monde,J'utilise un datarepeater dans un IHM qui herite de UserControlJ'affiche mes donnees dans le datarepeater de la maniére suivante convertir le son d'une video en byte[] [ par manytwo ] Bonjour, je souhaiterai savoir comment convertir le son d'une video en tableau de byte (byte[])et également savoir comment enregistrer le son d'un .av tableau rempli par la valeur d un byte [ par dan001be ] bonjour a tousje débute en c#je devrais pouvoir stocker la valeur d une variable byte indicée  a 10! byte[10]ent par ex 10 val (128,0,255,56,etc)comme conversion tableau de byte en image jpeg [ par laymouna98 ] salut à tous voila je recupere une image qui est stockée sur sql server en format image, je l'affecte a un tableau de byte (byte [] ) mais je ne vois


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.