Page 1 sur 1

[R] Identification avant lancement

Posté : lun. 28 mars 2011 18:35
par yanius
Bonjour à toute la communauté !!

Donc voila je reviens avec mes questions (youpii ! ;))
Donc voila je voulais savoir si il existait un script qui permet de demander une identification lors du lancement (avec Nom et Mot De Passe).
Je voulais le rajouter au début d'un autre script...

Merci Beaucoup !!!

Re: [..] Identification avant lancement

Posté : mar. 29 mars 2011 00:00
par scorp84
Bonjour,

Voici un bout de code qui pourrait peut être faire l'affaire :

Code : Tout sélectionner

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <String.au3>
#include <WindowsConstants.au3>

Global $Form1 = GUICreate("IDENTIFICATION", 286, 90, 192, 124)
Global $Group1 = GUICtrlCreateGroup(" Code d'identification ", 8, 6, 271, 78)
Global $Input_code = GUICtrlCreateInput("", 15, 22, 258, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
Global $Btn_valider = GUICtrlCreateButton("Valider", 198, 50, 75, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            ContinueLoop

        Case $Btn_valider
            $code=GUICtrlRead($Input_code)
            $code=_StringEncrypt(1,$code,"dQKzRsBWqoyd",2)

            If $code="F0F3727F81C8C7E2D2285B67013AAF3B" Then
                $ident=1
                GUIDelete($Form1)
                ExitLoop
            EndIf
 EndSwitch
WEnd

If $ident<>1 then Exit

; Reste du code ...

 
Dans cet exemple, le code est 1234. J'ai utilisé la fonction StringEncrypt pour que le code ne soit pas visible directement si le script est décompilé (c'est juste une petite protection car de toute façon quel que soit la complexité du codage, une analyse du code source permettra toujours de le retrouver).

Il y a juste un code mais tu peux facilement lui rajouter un 2ème champ pour le nom.

Amicalement.

BM

Re: [..] Identification avant lancement

Posté : mar. 29 mars 2011 18:03
par yanius
Merci beaucoup pour ce code !!
Il marche très bien !

Par contre pourrais-tu m'expliquer cette partie ? (je ne suis pas encore très qualifié dans la programmation ( :)))

Code : Tout sélectionner

If $code="F0F3727F81C8C7E2D2285B67013AAF3B" Then
                $ident=1
                GUIDelete($Form1)
                ExitLoop
            EndIf

Re: [..] Identification avant lancement

Posté : mar. 29 mars 2011 19:44
par matwachich
C'est ton mot de passe après passage par _StringEncrypt
Fait:

Code : Tout sélectionner

_StringEncrypt(0, "F0F3727F81C8C7E2D2285B67013AAF3B", "dQKzRsBWqoyd", 2)
Pour le voir en claire

PS: @scorp84: Pour un mot de passe il vaut mieux utiliser un Hash, car quand on le crypte, on peut facilement le décrypter comme je l'ai fait plus haut, mais un Hashage est irréversible.
Voir du coté de _Crypt_HashData

Re: [..] Identification avant lancement

Posté : mar. 29 mars 2011 21:26
par scorp84
@matwachich : Merci pour l'info, je vais pouvoir améliorer mes scripts ;-)

@yanius :

Code : Tout sélectionner

$ident=1
Cela permet que si l'utilisateur arrive à fermer la fenêtre d'identification d'une manière autre qu'en donnant le bon code, la ligne qui est tout de suite après ta boucle

Code : Tout sélectionner

If $ident<>1 then Exit
sort du script et du coup ne donne pas accès à la suite de ton programme.

Code : Tout sélectionner

GUIDelete($Form1)
Cela te permet de fermer la fenêtre d'identification

Code : Tout sélectionner

ExitLoop
Tant que tu ne donnes pas le bon code, tu restes dans la boucle de contrôle


N'hésite pas si tu as encore besoin (et n'oublie pas le R pour ton premier message si c'est OK ;-)

Amicalement.

BM

Re: [R] Identification avant lancement

Posté : mar. 29 mars 2011 21:59
par yanius
Merci pour ces explications !!
Mais comment as tu fais pour savoir que la forme crypter de 1234 est F0F3727F81C8C7E2D2285B67013AAF3B ?

Re: [R] Identification avant lancement

Posté : mer. 30 mars 2011 09:40
par albu68
Merci pour ce code.
Même question que yanuis ! ?

Re: [R] Identification avant lancement

Posté : mer. 30 mars 2011 10:56
par Iste
Et bien il a simplement crypté une foi et regardé le résultat.....

Code : Tout sélectionner

ClipPut(_StringEncrypt(1,"1234","dQKzRsBWqoyd",2))

Re: [R] Identification avant lancement

Posté : mer. 30 mars 2011 12:45
par scorp84
Exact :-)

Afin de pouvoir le faire facilement, j'ai fait un petit script qui me permet de pouvoir crypter facilement un mot de passe quand je code :
► Afficher le texte
Mais je vais l'améliorer après le conseil que m'a donné Matwachich.

Amicalement.

BM

@yanius :
PS : Vu que c'était pour du perso, le code n'est pas trop commenté. N'hésite pas si tu as des questions.

Re: [R] Identification avant lancement

Posté : mer. 30 mars 2011 13:31
par yanius
Encore merci pour ces explications !!

Re: [R] Identification avant lancement

Posté : mer. 30 mars 2011 18:39
par yanius
Euh juste une dernière question, qu'est ce que la clé dQKzRsBWqoyd ?
Est-elle un type de cryptage ?

Re: [R] Identification avant lancement

Posté : mer. 30 mars 2011 18:54
par scorp84
C'est juste une clé aléatoire générée à partir du script que j'ai fait pour crypter tes mots de passe et dont je t'ai donné le source.

Au démarrage, il génère une clé aléatoire qui comprend entre 10 et 12 caractères alphanumériques.

Amicalement.

BM