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 :

[VB2005] Cryptage d'une chaine de caractère


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 43
    Points : 32
    Points
    32
    Par défaut [VB2005] Cryptage d'une chaine de caractère
    Bonjour,

    Je souhaite crypter une chaine de caractère pour faire une activation de mon programme. Je récupère le numéro de série du disque dur, je l'affiche et en retour j'attends que l'utilisateur saisisse la clé d'activation (cryptage du numéro de série du DD).
    J'utilise la méthode SHA512 pour crypter la chaine :

    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
    19
    20
    21
    22
    23
     
    Public Shared Function GetSHA512(ByVal str As String, ByVal Nombre As Int32) As String
    Dim strHex As String = ""
    Dim temp As String = ""
    Dim UE As UnicodeEncoding = New UnicodeEncoding
    Dim HashValue As Byte()
    Dim MessageBytes As Byte() = UE.GetBytes(str)
    Dim SHhash As SHA512Managed = New SHA512Managed
    GetSHA512 = ""
     
    'create the hash table using the SHA512 algorithm
    HashValue = SHhash.ComputeHash(MessageBytes)
    convert the hash table to a string
    If Nombre > HashValue.Length Then
        Nombre = HashValue.Length
    End If
    For i As Integer = 0 To Nombre - 1
        strHex += String.Format("{0:x2}", HashValue(i))
    Next
    GetSHA512 = strHex.PadRight(Nombre, CChar("@")).Substring(0, Nombre)
    UE = Nothing
    SHhash.Clear()
    End Function
    Le problème est que cette méthode semble renvoyer un code différent suivant la session windows auquelle on est loggé.

    Quelqu'un connait-il une méthode simple de cryptage qui ne change pas suivant la session windows ? Ou alors y a-t-il une option pour le cryptage avec SHA512 pour qu'il ne change pas suivant la session windows ?

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    Bonjour,
    tu peux essayer le MD5 ou en faire une toi-même via ascii.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    j'ai trouvé une simple fonction de cryptage qui marche et qui utilise le code ascii

    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
    19
    20
    21
    22
    Public Function Crypt(ByRef texte As String) As String
            'crypte les donnees recuperee 
            Dim sortie As String
            Dim pos As Integer
            Dim offset As Integer
            Dim a_traiter As String
            Dim taille As Integer
            sortie = ""
            pos = 1
            taille = Len(texte)
            ' Boucle de cryptage de la chaine
            While pos <= taille
                ' Extrait la chaine à traiter
                a_traiter = Mid(texte, pos, 1)
                sortie = sortie & Chr(Asc(a_traiter) - offset)
                ' Prépare le passage suivant
                offset = offset + 1
                If offset = 3 Then offset = 1
                pos = pos + 1
            End While
            Return sortie
        End Function

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 43
    Points : 32
    Points
    32
    Par défaut
    En fait, je pense que j'avais mal ciblé le problème.
    Dans mon cas, le problème ne venait pas du cryptage, mais du numéro de série du disque dur. En effet, la requête Win32_DiskDrive ne renvoie pas la même chose suivant que l'on est en administrateur ou en utilisateur avec pouvoir limité (bug Windows) :
    http://support.microsoft.com/kb/916191/fr

    Merci de votre aide.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    De rien ,bonne continuation

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Crypter une chaine de caractères
    Par Yabo dans le forum Réseau
    Réponses: 18
    Dernier message: 19/11/2004, 23h04
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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