[R] Comparer les majuscules et minuscules dans input

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

[R] Comparer les majuscules et minuscules dans input

#1

Message par jeanmimigab »

Bonjour tlm,
Avant tout et à la vue de la situation actuelle, j'espère que tous les membres du forum se portent bien...

J'ai un petit souci dans l'utilitaire que je code.
Cet utilitaire permet de stocker un mot de passe crypté qui sera stocké sur le PC dans un fichier dans "pass.txt"
1. La partie "CONFIGURATION" sert à créer et stocker le MDP crypté "pass.txt".
2. La partie "UTILISATION" permet de décrypter le code contenu dans "pass.txt" et de le coller dans le presse-papier

La validation doit se faire si les champs sont identique et non vide, mais un problème persiste...
La comparaison ne fait pas la différence entre les majuscules et minuscules, cela fait par exemple que les mots "TEST" et "test" sont détectés comme étant identique alors qu'ils ne le sont pas dans un MDP.
Je n'ai pas réussi à trouver de solution... :(

Voici mon code et merci d'avance pour votre aide..
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <ComboConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <date.au3>
#include <Crypt.au3>
#include <TrayConstants.au3>
_Verifbug()
#Region ### START Koda GUI section ### Form=C:\Users\jeanmimi\Desktop\ENECRRYPT\GUITESTCRYP.kxf
Global $Form1 = GUICreate("TESTCRYP", 628, 245, 206, 165)
GUISetIcon("C:\Users\jeanmimi\Desktop\ENECRRYPT\icone.ico", -1)
GUISetBkColor(0xB4B4B4)
Global $Group1 = GUICtrlCreateGroup("  CONFIGURATION  ", 24, 8, 585, 89)
GUICtrlSetFont(-1, 8, 400, 0, "Segoe UI")
Global $Label1 = GUICtrlCreateLabel("1. Saisir votre mot de passe", 48, 32, 190, 17)
Global $Label2 = GUICtrlCreateLabel("2. Confirmer votre mot de passe", 260, 32, 214, 17)
Global $Button1 = GUICtrlCreateButton("3. Valider", 496, 32, 99, 49)
GUICtrlSetBkColor(-1, 0x00FF00)
Global $Input1 = GUICtrlCreateInput("SAISIR MDP ICI", 40, 56, 193, 21)
Global $Input2 = GUICtrlCreateInput("CONFIRMER MDP ICI", 264, 56, 193, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Group2 = GUICtrlCreateGroup("  UTILISATION  ", 24, 112, 585, 105)
GUICtrlSetFont(-1, 8, 400, 0, "Segoe UI")
Global $Button2 = GUICtrlCreateButton("Cliquer ici pour copier le MDP dans le presse-papier", 48, 144, 539, 49)
GUICtrlSetFont(-1, 12, 400, 0, "Segoe UI")
GUICtrlSetBkColor(-1, 0xB9D1EA)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Global $file2 = FileOpen("@scriptdir\pass.txt")
Global $ligne2 = FileReadLine($file2)

While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $Button1
   _Editpass()
Case $msg = $Button2
   _Decryptpass()
EndSelect
WEnd

Func _Editpass()
   Global Const $sFilePath = @ScriptDir & "\pass.txt"
    Global $iFileExists = FileExists($sFilePath)
      If $iFileExists Then
         FileDelete ( $sFilePath )
         _FileCreate ( $sFilePath )
   EndIf
   FileOpen(@scriptdir & "\pass.txt")
   FileSetAttrib ( @scriptdir & "\pass.txt", "+H" )
   Local $ecri2 = guictrlread($Input1)
   Local $ecri3 = guictrlread($Input2)
   If $ecri2 = $ecri3 Then
   Local $dEncrypted = StringEncrypt(True, $ecri2, 'securepassword')
   Filewrite(@scriptdir & "\pass.txt", $dEncrypted & @CRLF )
   FileClose(@scriptdir & "\pass.txt")
   MsgBox($MB_SYSTEMMODAL, 'Crytage réalisé', 'Le mot de passe est crypté et sauvegardé! Relancez TESTCRYP pour l' & "'" & 'utiliser.', 0)
      Else
      MsgBox($MB_ICONWARNING, 'erreur', 'Les deux mots de passe saisis ne sont pas identique, relancer TESTCRYP et saisir à nouveau les deux mots de passe', 0)
         FileDelete ( $sFilePath )
   Exit
      EndIf

   Exit
EndFunc
Func _Decryptpass()
   FileOpen(@scriptdir & "\pass.txt")
      Local $ligne2 = FileReadLine(@scriptdir & "\pass.txt")


         Local $sDecrypted = StringEncrypt(False, $ligne2, 'securepassword')
         ClipPut($sDecrypted)
         TrayTip("Information TESTCRYP !", 'Mot de passe décrypté et copier dans le presse-papier!', 0, $TIP_ICONASTERISK)
      Sleep (6000)
   FileClose(@scriptdir & "\pass.txt")
   Exit
EndFunc


Func StringEncrypt($bEncrypt, $sData, $sPassword)
    _Crypt_Startup() ; Démarre la librairie Crypt.
    Local $vReturn = ''
    If $bEncrypt Then ; Si le flag est défini à True alors chiffre, sinon déchiffre.
        $vReturn = _Crypt_EncryptData($sData, $sPassword, $CALG_AES_256)
    Else
        $vReturn = BinaryToString(_Crypt_DecryptData($sData, $sPassword, $CALG_AES_256))
    EndIf
    _Crypt_Shutdown() ; Arrête la librairie Crypt.
    Return $vReturn
EndFunc   ;==>StringEncrypt

Func _Verifbug()
   Local Const $sFilePath = @ScriptDir & "\pass.txt"
    Global $iFileExists = FileExists($sFilePath)
      If $iFileExists Then
     MsgBox($MB_ICONINFORMATION, 'TESTCRYP est opérationnel!', 'Vous pouvez modifier votre mot de passe  à tout moment en utilisant la partie CONFIGURATION.', 0)
      GuiSetState()
    Else
     MsgBox($MB_ICONWARNING, 'Bienvenue dans TESTCRYP', 'Vous devez configurer TESTCRYP en utilisant la partie CONFIGURATION et relancer TESTCRYP pour l' & "'" & 'utiliser.', 0)
    GuiSetState()
   EndIf
EndFunc
Modifié en dernier par jeanmimigab le mer. 01 avr. 2020 21:40, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comparer les majuscules et minuscules dans input

#2

Message par Tlem »

Bonjour.

Votre test n'est pas correct.
Vous devez remplacer If $ecri2 = $ecri3 Then par If $ecri2 == $ecri3 Then

Edit :
De plus votre code contient des petites choses étranges.
Ex : Ligne 38 => Global $file2 = FileOpen("@scriptdir\pass.txt")
@Scriptdir ne devrait pas être dans les guillemets.
Vous déclarez des constantes à l'intérieur de fonctions ... Normalement on le fait en début de script et toujours en dehors des fonctions.
Je n'ai pas pris le temps de décortiquer l'intégralité de votre script, mais vous devriez re-contrôler tout ça ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Comparer les majuscules et minuscules dans input

#3

Message par jchd »

De plus, on ne doit jamais stocker des mots de passe, même sous forme chiffrée !
Il suffit de stocker un hash du couple {login, pass}, de préférence en y ajoutant du "sel" et de comparer ce qu'on a stocké avec ce que l'utilisateur soumet.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [R] Comparer les majuscules et minuscules dans input

#4

Message par jeanmimigab »

Bonjour Tlem,

Cela fonctionne parfaitement avec les "==", j'ai remis de l'ordre dans le script en suivant tes conseils.

Un grand merci et bonne journée :wink:
Répondre