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 HELP!!! Comment installer/désinstaller en c#?? [ par Bidibule ] Salut tout le monde!!j'ai une petite question pr vous car je me demande comment créer un exécutable de mon projet que je pourrais installer/désinstall Les tableaux [ par DrChal ] DrChalSalut,Mes Meilleurs Voeux à tous.J'ai une petite question de débutant.Peut on faire des tableaux d'enregistrement comme dans VB.?Ex en VB :Priva array et CSharp [ par matgai ] Bonjour,Je débute en C# et je vois déjà les limites du tout-objet par rapport à C++. Voici en particulier où je bute :je veux écrire l'équivalent C++ Prise de tête avec ToString [ par Wolf ] COMMENT FAIRE POUR TRANSFORMER UN TABLEAU DE BYTE EN STRING????????????????Mes murs commence à s'écrouler à force de me tapper la tête dedans!Voilà 2


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

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



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,250 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é.