Noviceatthis Posted March 26, 2013 Share Posted March 26, 2013 Hello all I have just written this: expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #region ### START Koda GUI section ### Form= $Form1_1 = GUICreate("Enter Password", 616, 133, 192, 124) GUISetBkColor(0x000080) $Label1 = GUICtrlCreateLabel("Enter Password", 8, 8, 598, 33, BitOR($SS_CENTER, $SS_CENTERIMAGE, $SS_SUNKEN)) GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFF00) GUICtrlSetBkColor(-1, 0x008080) $Input1 = GUICtrlCreateInput("", 8, 80, 593, 21) $Button1 = GUICtrlCreateButton("Correct Password", 344, 64, 257, 49) GUICtrlSetState($Button1, $GUI_HIDE) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### $v = 0 While 1 $Answer = GUICtrlRead($Input1) If $Answer = "password" Then If $v <> 0 Then Sleep(20) Else func1() EndIf Else $v = 0 EndIf $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func func1() If $Answer = "password" Then GUICtrlSetState($Input1, $GUI_HIDE) $Input1 = GUICtrlCreateInput("password", 8, 80, 313, 21) GUICtrlSetState($Button1, $GUI_SHOW) $v = 2 EndIf EndFunc ;==>func1 My question is, how would i set it, so that when the password (in this case password) has already been typed in but is then deleted, the inputbox returns to its normal size and the button is hidden?? I have tried a few methods and I can hide the button, but the inputbox keeps flickering between sizes thanks in advance Link to comment Share on other sites More sharing options...
FireFox Posted March 26, 2013 Share Posted March 26, 2013 Hi, The main problem in your script is that you create an input instead of resizing the original one. Here you go : expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #region ### START Koda GUI section ### Form= $Form1_1 = GUICreate("Enter Password", 616, 133, 192, 124) GUISetBkColor(0x000080) $Label1 = GUICtrlCreateLabel("Enter Password", 8, 8, 598, 33, BitOR($SS_CENTER, $SS_CENTERIMAGE, $SS_SUNKEN)) GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFF00) GUICtrlSetBkColor(-1, 0x008080) $Input1 = GUICtrlCreateInput("", 8, 80, 593, 21) $Button1 = GUICtrlCreateButton("Correct Password", 344, 64, 257, 49) GUICtrlSetState($Button1, $GUI_HIDE) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### Local $sPassword = "", $blCorrectPassword = False While 1 $sPassword = GUICtrlRead($Input1) If $sPassword = "password" Then If Not $blCorrectPassword Then GUICtrlSetPos($Input1, 8, 80, 313, 21) GUICtrlSetState($Button1, $GUI_SHOW) $blCorrectPassword = True EndIf ElseIf $sPassword = "" Then If $blCorrectPassword Then GUICtrlSetState($Button1, $GUI_HIDE) GUICtrlSetPos($Input1, 8, 80, 593, 21) $blCorrectPassword = False EndIf EndIf $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch Sleep(10) WEnd Br, FireFox. Link to comment Share on other sites More sharing options...
Noviceatthis Posted March 26, 2013 Author Share Posted March 26, 2013 Thanks for the very speedy reply Link to comment Share on other sites More sharing options...
Noviceatthis Posted March 26, 2013 Author Share Posted March 26, 2013 oh and incidentally, thanks for introducing me to the GUICtrlSetPos function, very useful Link to comment Share on other sites More sharing options...
FireFox Posted March 26, 2013 Share Posted March 26, 2013 You're welcome Link to comment Share on other sites More sharing options...
spudw2k Posted March 27, 2013 Share Posted March 27, 2013 If you are up for learning new things, I highly recommend looking at the _Crypt funcs in the help file. There is a simple, elegant example for a calculated hash / password mechanism (Much more secure than embedding a cleartext password). Noviceatthis 1 Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX Builder Misc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retrieve SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose Array Projects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalc Cool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF Link to comment Share on other sites More sharing options...
Noviceatthis Posted March 27, 2013 Author Share Posted March 27, 2013 spudw2k thanks for that, looks complicated, gonna need to get my head round it Link to comment Share on other sites More sharing options...
spudw2k Posted March 27, 2013 Share Posted March 27, 2013 (edited) Let me lend a little perspective. Hopefully you are familiar with what a hash is, but if you are not (which is fine) here is a quick explanation, otherwise skip ahead. A hash is a calculated value for a given input data. It is a one-way operation that converts data into unique values that is intended to be difficult to reverse. There are many hashing algorithms some stronger (more resistant to attacks) and/or more popular than others. Anyways, in the example script I lead you to there a few simple to understand tasks. The _Crypt_HashData function was used first to generate the hash value for the password (in this case the password used was, " Yellow fruit that is popular among monkeys"). The resulting hash value was defined in the script as $bPasswordHash="0xCE950A8D7D367B5CE038E636893B49DC". Next a simple inputbox asks for the password (which is what your script does too). It then compares the calculated hash of the data in the inputbox and compares it to the hash value of the $bPasswordHash value You know the rest of the logic. The reason embedding a hash is more secure is because it takes the exact specific data to create the same hash value. Also, any source code can be fairly easily retrieved from "complied" scripts. If a hacker looks at your source it is safer for them to obtain a hash versus the password itself. The only caution is if the password is forgotten there is no easy recovery beyond modifying the script and inserting a new password hash value. I hope that makes some sense. Play around with the example a bit. Notice how even minimal changes cause the hash to be different (changing upper and lower case letters, adding or subtracting chars). Edited March 27, 2013 by spudw2k Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX Builder Misc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retrieve SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose Array Projects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalc Cool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF Link to comment Share on other sites More sharing options...
Noviceatthis Posted March 27, 2013 Author Share Posted March 27, 2013 (edited) spudw2k Thank you so much for the explanation expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Crypt.au3> #region ### START Koda GUI section ### Form= $Form1_1 = GUICreate("Enter Password", 616, 133, 192, 124) GUISetBkColor(0x000080) $Label1 = GUICtrlCreateLabel("Enter Password", 8, 8, 598, 33, BitOR($SS_CENTER, $SS_CENTERIMAGE, $SS_SUNKEN)) GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFF00) GUICtrlSetBkColor(-1, 0x008080) $Input1 = GUICtrlCreateInput("", 8, 80, 593, 21) $Button1 = GUICtrlCreateButton("Correct Password", 344, 64, 257, 49) GUICtrlSetState($Button1, $GUI_HIDE) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### $v = 0 $passwordhash = "0x5F4DCC3B5AA765D61D8327DEB882CF99" While 1 $Answer = GUICtrlRead($Input1) If _Crypt_HashData($Answer,$CALG_MD5) = $passwordhash Then If $v <> 0 Then Sleep(20) Else func1() EndIf Else if $v <> 0 Then GUICtrlSetState($Button1, $GUI_HIDE) GUICtrlSetPos($Input1, 8, 80, 593, 21) $v = 0 Else Sleep(20) EndIf EndIf $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 MsgBox(0, "", "It worked") Exit EndSwitch WEnd Func func1() If _Crypt_HashData($Answer,$CALG_MD5) = $passwordhash Then GUICtrlSetPos($Input1, 8, 80, 313, 21) GUICtrlSetState($Button1, $GUI_SHOW) $v = 2 EndIf EndFunc ;==>func1 if you're interested, there is my old script with the use of hash. I only have one final question, in the process of reading about this, I found multiple encryption functions like MD2, 4 and 5 and SHA1, what is the difference between these?? very many thanks Edited March 28, 2013 by Noviceatthis Link to comment Share on other sites More sharing options...
spudw2k Posted March 28, 2013 Share Posted March 28, 2013 (edited) Glad you are interested.MD (aka Message DIgest) is a hashing standard and the numbers that follow (2,4,5) are the version revisions. The differences between them has to do with the encryption processes the strength of it. MD5 was the standard for quite sometime and is still used widely, but it has become less reliable due to collision attacks and other discovered vulerabilities. SHA (Secure Hash Algorithm) is another hashing algo that followed MD5 and is less susseptible to attacks, but still not invulnerable. There are also more verisons of SHA which produce larger digests including SHA-256 and SHA-512. For most intents and purposes MD5 and SHA1 hashes are fairly secure; particularly if you "salt the hash." Edited March 28, 2013 by spudw2k Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX Builder Misc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retrieve SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose Array Projects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalc Cool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF Link to comment Share on other sites More sharing options...
Noviceatthis Posted March 28, 2013 Author Share Posted March 28, 2013 Ah I see, and presumably the older MD's only still exist for older versions of windows, well thank you so much for everything spudw2k you've been a great help Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now