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 :

Problème de variable pour un système de clé.


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut Problème de variable pour un système de clé.
    Bonjour,
    je voudrais créer un système de clé pour mon application qui serait générée et vérifiée en fonction du prénom et du nom.
    Je pensais à ajouter le contenu de la textbox prénom et la textbox nom et décaler de 3 lettres chaque lettre pour générer la clé (méthode utilisée par Jules César )

    Ainsi, si par exemple mon prénom est : "ABCD" et mon nom est "EFGH", ma clé sera : "DEFGHIJK" car ABCDEFGH --> DEFGHIJK
    J'utilise donc la méthode replace mais qui malheureusement ne supporte que deux surcharges, je dois donc trouver une parade pour pour lui donner l'équivalent de chaque lettre.
    J'ai donc trouvé ce code qui "empile" plusieurs variables, mais apparemment cela ne doit pas être possible puisque mon code ne marche que pour quelques lettres ( les dernières il me semble ) :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
            Dim PrénomEtNom As String = TextBoxVotrePrénom.Text + TextBoxVotreNom.Text
            Dim CalculCléAD As String = Nothing
            Dim CalculCléBE As String = Nothing
            Dim CalculCléCF As String = Nothing
            Dim CalculCléDG As String = Nothing
            Dim CalculCléEH As String = Nothing
            Dim CalculCléFI As String = Nothing
            Dim CalculCléGJ As String = Nothing
            Dim CalculCléHK As String = Nothing
            Dim CalculCléIL As String = Nothing
            Dim CalculCléJM As String = Nothing
            Dim CalculCléKN As String = Nothing
            Dim CalculCléLO As String = Nothing
            Dim CalculCléMP As String = Nothing
            Dim CalculCléNQ As String = Nothing
            Dim CalculCléOR As String = Nothing
            Dim CalculCléPS As String = Nothing
            Dim CalculCléQT As String = Nothing
            Dim CalculCléRU As String = Nothing
            Dim CalculCléSV As String = Nothing
            Dim CalculCléTW As String = Nothing
            Dim CalculCléUX As String = Nothing
            Dim CalculCléVY As String = Nothing
            Dim CalculCléWZ As String = Nothing
            Dim CalculCléXA As String = Nothing
            Dim CalculCléYB As String = Nothing
            Dim CalculCléZC As String = Nothing
            CalculCléAD = Replace(PrénomEtNom, "A", "D")
            CalculCléBE = Replace(CalculCléAD, "B", "E")
            CalculCléCF = Replace(CalculCléBE, "C", "F")
            CalculCléDG = Replace(CalculCléCF, "D", "G")
            CalculCléEH = Replace(CalculCléDG, "E", "H")
            CalculCléFI = Replace(CalculCléEH, "F", "I")
            CalculCléGJ = Replace(CalculCléFI, "G", "J")
            CalculCléHK = Replace(CalculCléGJ, "H", "K")
            CalculCléIL = Replace(CalculCléHK, "I", "L")
            CalculCléJM = Replace(CalculCléIL, "J", "M")
            CalculCléKN = Replace(CalculCléJM, "K", "N")
            CalculCléLO = Replace(CalculCléKN, "L", "O")
            CalculCléMP = Replace(CalculCléLO, "M", "P")
            CalculCléNQ = Replace(CalculCléMP, "N", "Q")
            CalculCléOR = Replace(CalculCléNQ, "O", "R")
            CalculCléPS = Replace(CalculCléOR, "P", "S")
            CalculCléQT = Replace(CalculCléPS, "Q", "T")
            CalculCléRU = Replace(CalculCléQT, "R", "U")
            CalculCléSV = Replace(CalculCléRU, "S", "V")
            CalculCléTW = Replace(CalculCléSV, "T", "W")
            CalculCléUX = Replace(CalculCléTW, "U", "X")
            CalculCléVY = Replace(CalculCléUX, "V", "Y")
            CalculCléWZ = Replace(CalculCléVY, "W", "Z")
            CalculCléXA = Replace(CalculCléWZ, "X", "A")
            CalculCléYB = Replace(CalculCléXA, "Y", "B")
            CalculCléZC = Replace(CalculCléYB, "Z", "C")
            TextBoxVotreClé.Text = CalculCléZC
    Auriez vous une astuce ? Merci !
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Crééer la chaine codée en y ajoutant le transformé de chaque lettre.
    Pour transformer une lettre la "caster" en byte, ajouter 3 au byte et "recaster" en char.

    Donc 3 instructions:
    -l'init du résultat à "",
    - la boucle sur la longueur de la chaine d'entrée,
    - la concaténation au résultat du cast en char du cast byte incrémenté de 3.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Bonsoir,

    Ta façon de faire a un énorme souci, tu remplaces les A par D puis ensuite tu remplaces les D par G donc tu changes tout les A en G et ainsi de suite, c'est ce qui fait que seuls les dernières changement semblent fonctionner.

    Au lieu de chercher à remplacer, construis une nouvelle chaine.
    Tu parcours ta chaine initiale, pour chaque lettre.
    Tu récupères sa position dans ton alphabet.
    Tu décales cette position du nombre voulu (3 dans ton exemple)
    Tu ajoutes à ton résultat la lettre à cette position (attention à bien avoir gérer les sorties d'alphabet ; exemple Z aurait une position de 25 (on compte à partir de 0) il ne faut pas prendre la lettre 28 mais 2 (quand l'alphabet est fini on redémarre donc 26 = 0)).
    Il faudra aussi penser à gérer le cas, ce caractère n'est pas dans mon alphabet (exemple le trait d'union pour un prénom/nom composé).

    Cordialement !
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour,
    à voir...
    Ce code rejoint l'idée de Graffito, en incrémentant (Encode), ou décrémentant (Decode) d'un certain nombre la représentation décimale de chaque caractère Unicode.

  5. #5
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Bonjour à tous,
    merci pour votre aide j'ai pu trouver le code ( merci à banana32 de VBfrance si tu passes par là ! ) :
    Je met donc le code ici que j'ai adapté pour ceux que ça intéresse !
    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
    Public Class Form1
        Private Function CryptePrenom(ByVal Prenom As String, ByVal Nom As String) As String
            Dim alpha As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZABC"
            Dim RésultatPrénom As String = ""
            Dim RésultatNom As String = ""
     
            For Each LettrePrénom As String In Prenom
                RésultatPrénom &= alpha.Substring(alpha.IndexOf(LettrePrénom) + 3, 1)
            Next
            For Each LettreNom As String In Nom
                RésultatNom &= alpha.Substring(alpha.IndexOf(LettreNom) + 3, 1)
            Next
            TextBoxClé.Text = RésultatPrénom + RésultatNom
            Return RésultatPrénom & RésultatNom
        End Function
        Private Sub ButtonChiffrer_Click(sender As Object, e As EventArgs) Handles ButtonChiffrer.Click
            CryptePrenom(TextBoxPrénom.Text, TextBoxNom.Text)
        End Sub
    End Class
    Merci encore à vous tous pour votre aide ! Et merci à chrismonoye pour ton lien qui m'aidera à décrypter la chaîne chiffrée, c'est très intéressant !
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  6. #6
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    J'ai une dernière petite question, ça veut dire quoi caster ?
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    cast, en informatique, désigne la conversion de type.

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

Discussions similaires

  1. [Débutant] Problème de serveur pour un système de chat!
    Par iVarlix dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/07/2014, 17h56
  2. Problème de syntaxe pour concaténer des variables
    Par renaud26 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/09/2006, 09h44
  3. [MySQL] Problème récupération variable pour requête SQL !!
    Par mLk92 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/06/2006, 16h08
  4. [Système] Problème avec variables
    Par marie4449 dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2006, 19h42
  5. Réponses: 5
    Dernier message: 31/08/2005, 10h05

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