begin process at 2012 02 11 09:59:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Sécurité

 > 

Crypter une chaine de texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Crypter une chaine de texte

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ée 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 Alert dans une methode [ par theflayer ] Salut ! J'avais dit que je reviendrais avec ma methode [^^langue3] Voila problème surement tous bête : J'ai ma méthode qui convertit mes TextBox, ce Problème de mémoire protégée lors de l'appel d'un fonction issue d'une DLL en C depuis du C#. [ par MaGiKPoLo ] Bonsoir tout le monde, Cela fait quelque temps que je rame sur ce problème et j'espère que vous pourrez m'éclairer... Le contexte : J'ai développé Selections de parties d'un très lourd fichier [ par babaOrhumette ] Bonjour, Le titres n'est certainement pas très explicite et je ne dois pas être dans la bonne section, je m'en excuse par avance. Voilà, j'ai un éno focus out asp.net [ par shonem ] Bonjour voila j'ai un petit probleme j'ai une checkboxlist sur laquelle j'ai mis un autopostback et une methode associé à l'événement OnSelectedIndexC récuperer liste de byte dans base sqlite [ par Karibot ] Bonjour, j'ai un petit souci que je vous explique de suite: j'ai une base de données construite avec sqlite qui contient une table avec deux champs (p Conversion Hexadecimal to byte[ ] [ par Spawn3107 ] Bonjour tout le monde, j'ai un petit soucis concernant mon programme. Est-ce que quelqu'un sait comment je peut convertir le hexadecimal en un table Appel API, pointeur char[] [ par edurand1 ] Bonjour, Je dois intégrer en c# un appel à une API dont voici le prototype du .h : [code=cpp]typedef unsigned short (API_ENTRY _DLL_PTR T_Lec_Informa byte* byte[] string ... je craque [ par SURTOUT ] Bonjour a tous, Voila je bricole un peu en C# pour m'y mettre, je trouve ça vraiment intéressant mais des fois je bute sur des trucs tout betes. La


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales