Utilisateur anonyme
-
21 janv. 2013 à 22:50
Utilisateur anonyme -
24 janv. 2013 à 18:55
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é (["http://fr.wikipedia.org/wiki/Chiffrement_par_d%C3%A9calage" 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 ) :
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
Private Function CryptePrenom(ByVal Prenom As String) As String
Dim alpha As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZABC"
Dim resultat As String = ""
For Each lettre As String In Prenom
resultat &= alpha.Substring(alpha.IndexOf(lettre) + 3, 1)
Next
Return resultat
End Function
Voilà,
merci à banana32 qui une fois de plus m'aide ! J'ai donc adapté le code pour qu'il corresponde à mon cas ( Deux textebox )
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
En général, on utilise une fonction pour exploiter son résultat. Une fonction renvoie un résultat. C'est la grande différence qu'il y a par rapport à une sub qui ne retourne rien.
Puisque tu souhaites afficher le résultat de ta fonction dans un textbox, tu dois supprimer cette ligne de ta fonction :
transformerait par exemple "X" en "A", sous VB.Net ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 janv. 2013 à 12:47
Je comprends bien cet aspect-là ...
mais quand il concatènera la "traduction" de "X" avec :
alpha.Substring(alpha.IndexOf(lettre) + 3, 1)
C'est un "A", qu'il concatènera ? ===>> je ne vois pas comment car, pour moi, il concatènera un "[" et non le "A" souhaité
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 janv. 2013 à 13:03
Dialogue de sourds, apparemment :
Une idée :
Montre-moi le résultat de ton code (tel quel) pour la chaîne de départ "XYZ"
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.