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 :

Extraire socket d'un sub dans une variable


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut Extraire socket d'un sub dans une variable
    Bonjour,
    J'ai un petit problème, je développe une application qui utilise des sockets
    Jusque là pas de problème, mais j'ai une fonction, et les problèmes sont les suivants :
    - J'sais pas ou la mettre.
    - J'sais pas comment récupérer la key pour la metre dans ce code. (Envoyez par le serveur en socket)

    Je m'explique, quand je me connecte sur le serveur, il envoit une clé du genre " HCahamtqrsnveakmhdhngpeylkasewomki. "

    Cette clé doit être ensuite utilisé pour crypté un mot de passe, fonction :

    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
        Public Function PassEnc(ByVal pwd As String) As String
                Dim l1, l2, l3, l4, l5 As Integer, l7 As String = "#1"
                Dim hash() As String = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "-", "_"}
                Dim v1, v2 As String
                For l1 = 1 To Len(pwd)
                    l2 = Asc(Mid(pwd, l1, 1))
                    l3 = Asc(Mid(key, l1, 1))
                    l5 = Fix(l2 / 16)
                    l4 = l2 Mod 16
                    v1 = hash(((l5 + l3) Mod (UBound(hash) + 1)) Mod (UBound(hash) + 1))
                    v2 = hash(((l4 + l3) Mod (UBound(hash) + 1)) Mod (UBound(hash) + 1))
                    l7 = l7 + v1 + v2
                Next
                Return l7
            End Function
    Le truc, c'est que, Dim key n'est pas déclarer, et key doit être le socket :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     ' Recoit le premier socket envoyer par le serveur.
                Dim bytes(tcpClient.ReceiveBufferSize) As Byte
                networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
    Et ce petit bout de code ce trouve dans une private sub, donc je ne sais pas comment l'exporter pour l'utiliser dans ma fonction.

    J'éspère que vous avez compris, merci.

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    1-Une fonction/méthode doit être encapsulé dans une classe (qu'elle soit statique, externe ou d'instance).

    2-Pourquoi tu n'utilise pas les systèmes de cryptographie proposés par le framework ?

    Par contre évite d'appeler tes variables l1-l2... la 1ère fois que j'ai vu ton code j'ai cru que c'était des littéraux et non des variables.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    D'accords merci, mais le problème, c'est que si je l'encapsule dans une classe, il va me dire que key n'est pas déclarer, car key est plus bas dans une sub

    EDIT : J'ai réussi avec le code suivant mais c'est long & sa bug.

    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
       ' Recoit le socket axk qu'il faut traiter.
                Dim axkread(tcpClient.ReceiveBufferSize) As Byte
                networkStream.Read(axkread, 0, CInt(tcpClient.ReceiveBufferSize))
     
                Dim returnaxk As String = Encoding.ASCII.GetString(axkread)
                Dim axkclean As String = returnaxk.Remove(0, 14)
                axkclean = Replace(axkclean, Chr(0), Chr(10) & Chr(0))
                axkclean = ("AT" & axkclean)
     
                ' Recoit le socket hg
                Dim hg(tcpClient.ReceiveBufferSize) As Byte
                networkStream.Read(hg, 0, CInt(tcpClient.ReceiveBufferSize))
     
     
                ' Envoi le socket 14
                Dim socket14 As [Byte]() = Encoding.ASCII.GetBytes(axkclean)
                networkStream.Write(socket14, 0, 10)
    Si je remplace 10 par socket14.Length je me retrouve un paquet de taille 16000 sous la forme : 41 54 32 31 31 37 66 63 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00
    ETC.. Alors qu'a la base je ne reçois qu'une simple chaine (AXK=5?87>;0ag72117fc."

    Donc normalement qu'un seul caractère à remplacer

  4. #4
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    J'ai essayer une autre methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' Recoit le socket du pseudo
                Dim pseudoh(tcpClient2.ReceiveBufferSize) As Byte
                networkStream2.Read(pseudoh, 0, CInt(tcpClient2.ReceiveBufferSize))
                Dim pseudoreturn As String = Encoding.ASCII.GetString(pseudoh)
     
                pseudoreturn = pseudoreturn.Replace(Chr(0), String.Empty)
                pseudoreturn = pseudoreturn.Remove(0, 3)
     
                ' Envoi le pseudo
                Dim pseudofinal As [Byte]() = Encoding.ASCII.GetBytes("AA" & pseudoreturn & "|9|1|-1|-1|-1" & Chr(10) & Chr(0))
                networkStream2.Write(pseudofinal, 0, pseudofinal.Length)
    Je tombe sur l'erreur :
    Que je ne comprends pas beaucoup.
    Chaine de base :

Discussions similaires

  1. [RegEx] extraire dans une variable
    Par J4e8a16n dans le forum Langage
    Réponses: 4
    Dernier message: 22/01/2010, 17h29
  2. Réponses: 3
    Dernier message: 07/01/2010, 16h54
  3. Extraire un élément faisant partie d'une variable dans une regexp
    Par byrdo dans le forum Programmation et administration système
    Réponses: 9
    Dernier message: 17/04/2009, 15h21
  4. [MySQL] Extraire des variables dans une variable
    Par kryogen dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/10/2007, 09h20
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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