IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Cryptage DES Alphanumerique seulement


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut Cryptage DES Alphanumerique seulement
    salut
    j'ai un ptit pb au niveau du cryptage DES
    j'ai trouver comment crypter en DES avec une cle de cryptage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Public Shared Function EncryptTripleDES(ByVal sIn As String, ByVal sKey As String) As String
            Dim DES As New System.Security.Cryptography.TripleDESCryptoServiceProvider
            Dim hashMD5 As New System.Security.Cryptography.MD5CryptoServiceProvider
     
            ' scramble the key
            sKey = ScrambleKey(sKey)
            ' Compute the MD5 hash.
            DES.Key = hashMD5.ComputeHash(System.Text.Encoding.ASCII.GetBytes(sKey))
            ' Set the cipher mode.
            DES.Mode = System.Security.Cryptography.CipherMode.ECB
            ' Create the encryptor.
            Dim DESEncrypt As System.Security.Cryptography.ICryptoTransform = DES.CreateEncryptor()
            ' Get a byte array of the string.
            Dim Buffer As Byte() = System.Text.Encoding.ASCII.GetBytes(sIn)
            ' Transform and return the string.
            Return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))
        End Function
    seulement je me demande s'il y a un moyen d'obtenir en resultat que des caracteres alphanumeriques sans {/,+-}
    1000 merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Bonjour,
    Le type manipulé par ces algorithmes de cryptage est un tableau de bytes.
    C'est la conversion en une chaine lisible (Convert.ToBase64String) qui fait apparaitre ces caractères.

    Comme l'algorithme en lui même n'est pas customisable sur ce plan là (tu ne peux pas dire à môssieur "triple des" de ne pas utiliser tel valeur de byte), la seule solution que je vois consiste à élaborer une règle de remplacement après conversion pour ne pas retourner dans ta fonction ces caractères indésirables.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    La base 64 est juste une représentation possible des données cryptées... si tu veux tu peux aussi les représenter en chaine hexadécimale (donc avec seulement des lettres et des chiffres), avec une fonction dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function ToHexString(data As Byte()) As String
        Dim sb As New StringBuilder
        For Each b As Byte In data
            sb.AppendFormat("{0:X2}", b)
        Next
        Return sb.ToString()
    End Function
    Mais ça prend plus de place que la base 64...

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    merci pour votres reponses
    en ce qui concerne ta reponse tomlev le resultat est un hexadecimal =>
    (0-9 et A-F) malheureusement pas tres complete la liste aplhanumerique
    par contre nikoko34, il faut que je sache par quoi remplacer ces caracteres là
    sinon je suis coincé
    autres alternatifs
    merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Il faudrait que nous décrives un peu plus les contraintes car si le but est de ne pas afficher les caractères que tu mentionnes, la réponse de TomLev fait parfaitement l'affaire (je l'applique dès lors qu'il faut mémoriser dans un fichier à plat un password encrypté) !

    Quelle importance de ne pas avoir tous les caractères possibles du moment que tu arrives à encrypter et décrypter ta chaine de caractère ?

    Ma solution consiste à appliquer une règle de remplacement (du style remplacer le caractère '+' par 'plus').
    Elle n'a d'intérêt que pour l'affichage car on ne pourra pas s'assurer à 100% que la chaine générée pourra être décryptée en appliquant la règle inverse (remplacer 'plus' par '+'), ceci dans le cas où la chaine encryptée contiendrait cette combinaison de lettres.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par pirlo Voir le message
    merci pour votres reponses
    en ce qui concerne ta reponse tomlev le resultat est un hexadecimal =>
    (0-9 et A-F) malheureusement pas tres complete la liste aplhanumerique
    Comment ça pas très complète ? tu veux avoir des caractères de 0 à 9 et de A à Z ? mais pour quoi faire au juste ? Quel est ton besoin exactement ? D'ailleurs je ne vois pas trop en quoi c'est gênant d'avoir des '+' et des '/'...

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    je voulais qu'il soit alphanumerque parceqe en faite c'est pour un générateur
    de clé de débridage ou d'activation.
    le client nous envoie un code générer automatiquement par l'application
    et d'apres ce code alphanumerique je voulais générer un code d'activation
    et mon patron voulais qu'il soit de meme alphanumerique

    mais rassuez vous tomlev je l'ai convaicu d'admettre les "/" et "+" ...
    merci quand meme pour votre aide

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    n'oublie pas le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Crypt]Fonction simple de cryptage des données
    Par Agoye dans le forum Sécurité
    Réponses: 5
    Dernier message: 30/08/2006, 19h35
  2. [Cryptographie] problème en utilisant le cryptage DES
    Par chti_juanito dans le forum Sécurité
    Réponses: 11
    Dernier message: 07/02/2006, 08h29
  3. Algo de cryptage des Zip
    Par Rémiz dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 18/10/2005, 17h06
  4. Cryptage des procedures PL/SQL
    Par alamihamza dans le forum PL/SQL
    Réponses: 4
    Dernier message: 22/02/2005, 13h25
  5. Quiz : testez vos connaissances sur le cryptage des données
    Par SheikYerbouti dans le forum Oracle
    Réponses: 0
    Dernier message: 08/10/2004, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo