_WinAPI_ConfirmCredentials

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 201
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

_WinAPI_ConfirmCredentials

#1

Message par mdanielm » mar. 19 juin 2018 11:27

Bonjour,

Quelqu'un pourrait m'aider à trouver l'erreur?

#include <APIDlgConstants.au3>
#include <Crypt.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIDlg.au3>
#include <WinAPIRes.au3>

Local $hBitmap = _WinAPI_LoadImage(0, @ScriptDir & '\Extras\Authentication.bmp', $IMAGE_BITMAP, 0, 0, $LR_LOADFROMFILE)
Local $aData[3] = ['', '', 0]

While 1
    $aData = _WinAPI_ShellUserAuthenticationDlg('Authentication', 'To continue, type a login and password, and then click OK.', $aData[0], $aData[1], 'MyScript', BitOR($CREDUI_FLAGS_ALWAYS_SHOW_UI, $CREDUI_FLAGS_EXPECT_CONFIRMATION, $CREDUI_FLAGS_GENERIC_CREDENTIALS, $CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX), 0, $aData[2], $hBitmap)
    If @error Then Exit

    If (StringCompare($aData[0], 'AutoIt')) Or (StringCompare($aData[1], StringEncrypt(False, 'DC7E430A1C88', '123'))) Then
        If $aData[2] Then
            _WinAPI_ConfirmCredentials('MyScript', 0)
        EndIf
        MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', 'You have typed an incorrect login or password, it should be "AutoIt" and "123".')
    Else
        If $aData[2] Then
            _WinAPI_ConfirmCredentials('MyScript', 1)
        EndIf
        ExitLoop
    EndIf
WEnd

Func StringEncrypt($bEncrypt, $sData, $sPassword)
    _Crypt_Startup() ; Start the Crypt library.
    Local $sReturn = ''
    If $bEncrypt Then ; If the flag is set to True then encrypt, otherwise decrypt.
        $sReturn = _Crypt_EncryptData($sData, $sPassword, $CALG_RC4)
    Else
        $sReturn = BinaryToString(_Crypt_DecryptData($sData, $sPassword, $CALG_RC4))
    EndIf
    _Crypt_Shutdown() ; Shutdown the Crypt library.
    Return $sReturn
EndFunc   ;==>StringEncrypt

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1449
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: _WinAPI_ConfirmCredentials

#2

Message par orax » mar. 19 juin 2018 12:21

D'après moi l'erreur vient de la ligne suivante.
If (StringCompare($aData[0], 'AutoIt')) Or (StringCompare($aData[1], StringEncrypt(False, 'DC7E430A1C88', '123'))) Then

If (StringCompare($aData[0], 'AutoIt')) Or (StringCompare(StringEncrypt(False, '0x2544B2BA9A0E5F9CAAEE9776', $aData[1]), 'DC7E430A1C88')) Then
La chaîne '0x2544B2BA9A0E5F9CAAEE9776' s'obtient en faisant StringEncrypt(True, 'DC7E430A1C88', '123').
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 201
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: _WinAPI_ConfirmCredentials

#3

Message par mdanielm » mar. 19 juin 2018 13:54

OK, merci
Et la chaîne 'DC7E430A1C88' provient d'où ? sans doute une clé quelconque.

Répondre