derkaderka Posted October 31, 2010 Share Posted October 31, 2010 I am trying to make an encryption program, I got the RC4 encryption part to work, but not the convert string to binary part. Here is my code, please help. expandcollapse popup#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <ButtonConstants.au3> #include <String.au3> #include <File.au3> #include <WinAPI.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $selection = "" Global $error = "" Global $save = "" Global $sFile, $hFile, $sText, $nBytes, $tBuffer Global $readbin = "" $Form1 = GUICreate("Encrypter", 480, 302, 192, 124) $Encrypt = GUICtrlCreateButton("Encrypt", 144, 168, 75, 25) $Decrypt = GUICtrlCreateButton("Decrypt", 392, 40, 75, 25) $Input1 = GUICtrlCreateInput("", 16, 154, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD)) GUICtrlSetTip(-1, "Enter Password") GUICtrlSetCursor (-1, 5) $Edit1 = GUICtrlCreateEdit("", 16, 8, 201, 137) GUICtrlSetTip(-1, "Enter string to encrypt") GUICtrlSetCursor (-1, 5) $Input2 = GUICtrlCreateInput("", 264, 42, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD)) GUICtrlSetTip(-1, "Enter Password") GUICtrlSetCursor (-1, 5) $Input3 = GUICtrlCreateInput("", 264, 8, 161, 21) $Button1 = GUICtrlCreateButton("...", 432, 8, 35, 25) $Input4 = GUICtrlCreateInput("", 16, 184, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD)) GUICtrlSetTip(-1, "Re-Enter Password") GUICtrlSetCursor (-1, 5) $Radio1 = GUICtrlCreateRadio("RC4", 264, 104, 113, 17) $Radio2 = GUICtrlCreateRadio("Binary", 264, 128, 113, 17) $Group1 = GUICtrlCreateGroup("Encryption Type", 256, 80, 121, 81) GUICtrlCreateGroup("", -99, -99, 1, 1) $Progress1 = GUICtrlCreateProgress(16, 264, 449, 25) $Input5 = GUICtrlCreateInput("", 16, 210, 161, 21) $Button2 = GUICtrlCreateButton("...", 184, 208, 35, 25) GUICtrlSetTip(-1, "Choose a save destination") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Radio1 GUICtrlSetState($Input1, $GUI_ENABLE) GUICtrlSetState($Input4, $GUI_ENABLE) $selection = "1" Case $Radio2 GUICtrlSetState($Input1, $GUI_DISABLE) GUICtrlSetState($Input4, $GUI_DISABLE) $selection = "2" Case $Encrypt GUICtrlSetData($Progress1, 0) $error = "" If $selection = "2" Then If GUICtrlRead($Input5) = "" Then MsgBox(0, "Error", "Error: Must select a destination.") EndIf If GUICtrlRead($Input5) <> "" Then $readbin = GUICtrlRead($Edit1) continue2() EndIf Else $Read1 = GUICtrlRead($Input1) $Read2 = GUICtrlRead($Input4) $Read3 = GUICtrlRead($Input5) If $Read1 = "" Then MsgBox(0, "Error", "Error: Must enter password.") $error = "1" EndIf If $Read2 = "" Then MsgBox(0, "Error", "Error: Must re-enter password.") $error = "1" EndIf If $Read3 = "" Then MsgBox(0, "Error", "Error: Must select destination.") $error = "1" EndIf If $Read1 <> $Read2 Then MsgBox(0, "Error", "Error: Passwords do not match.") $error = "1" EndIf If $error = "" Then If $selection = "1" Then continue() EndIf If $selection = "" Then MsgBox(0, "Error", "Error: Must select an encryption type.") EndIf EndIf EndIf Case $Button2 $save1 = FileSaveDialog("Save", "", "(*.txt)") $save = $save1 & ".txt" GUICtrlSetData($Input5, $save) EndSwitch WEnd Func continue() $Read4 = GUICtrlRead($Edit1) $stringencrypt = _StringEncrypt(1, $Read4, $Read1) $r = 100/6 GUICtrlSetData($Progress1, $r) $r = $r + $r $tBuffer = DllStructCreate("byte[" & StringLen($stringencrypt) & "]") GUICtrlSetData($Progress1, $r) $r = $r + $r DllStructSetData($tBuffer, 1, $stringencrypt) GUICtrlSetData($Progress1, $r) $r = $r + $r $hFile = _WinAPI_CreateFile($save, 1) GUICtrlSetData($Progress1, $r) $r = $r + $r _WinAPI_WriteFile($hFile, DllStructGetPtr($tBuffer), StringLen($stringencrypt), $nBytes) GUICtrlSetData($Progress1, $r) $r = $r + $r _WinAPI_CloseHandle($hFile) GUICtrlSetData($Progress1, $r) EndFunc Func continue2() $Binary = StringToBinary($readbin) $c = 0 Do $bcheck = IsBinary($Binary) = 0 If $bcheck = 0 Then $bfinal = Binary($Binary) EndIf $c = $c + 1 Until $bcheck = 1 Or $c = 100 If $c = 100 Then MsgBox(0, "Failure", "Binary Creation failed.") Else $s = 100/6 GUICtrlSetData($Progress1, $s) $s = $s + $s $tBuffer = DllStructCreate("byte[" & StringLen($bfinal) & "]") GUICtrlSetData($Progress1, $s) $s = $s + $s DllStructSetData($tBuffer, 1, $bfinal) GUICtrlSetData($Progress1, $s) $s = $s + $s $hFile = _WinAPI_CreateFile($save, 1) GUICtrlSetData($Progress1, $s) $s = $s + $s _WinAPI_WriteFile($hFile, DllStructGetPtr($tBuffer), StringLen($bfinal), $nBytes) GUICtrlSetData($Progress1, $s) $s = $s + $s _WinAPI_CloseHandle($hFile) GUICtrlSetData($Progress1, $s) EndIf EndFunc Link to comment Share on other sites More sharing options...
jaberwacky Posted October 31, 2010 Share Posted October 31, 2010 (edited) Does this work as expected? expandcollapse popup#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #Tidy_Parameters=/tc 0 /sci 1 /kv 0 /reel #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <String.au3> #include <WinAPI.au3> Global Const $Form1 = GUICreate("Encrypter", 480, 302, 192, 124) Global Const $Edit1 = GUICtrlCreateEdit("", 16, 8, 201, 137) GUICtrlSetTip(-1, "Enter string to encrypt") GUICtrlSetCursor(-1, 5) Global Const $Input1 = GUICtrlCreateInput('', 16, 154, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD)) GUICtrlSetTip(-1, "Enter Password") GUICtrlSetCursor(-1, 5) Global Const $Input4 = GUICtrlCreateInput("", 16, 184, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD)) GUICtrlSetTip(-1, "Re-Enter Password") GUICtrlSetCursor(-1, 5) Global Const $Input5 = GUICtrlCreateInput("", 16, 210, 161, 21) Global Const $Button2 = GUICtrlCreateButton("...", 184, 208, 35, 25) GUICtrlSetTip(-1, "Choose a save destination") Global Const $Encrypt = GUICtrlCreateButton("Encrypt", 144, 168, 75, 25) ; ---------------------------------------------------- Global Const $Input3 = GUICtrlCreateInput('', 264, 8, 161, 21) Global Const $Button1 = GUICtrlCreateButton("...", 432, 8, 35, 25) Global Const $Input2 = GUICtrlCreateInput("", 264, 42, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD)) GUICtrlSetTip(-1, "Enter Password") GUICtrlSetCursor(-1, 5) Global Const $Decrypt = GUICtrlCreateButton("Decrypt", 392, 40, 75, 25) Global Const $Radio1 = GUICtrlCreateRadio("RC4", 264, 104, 113, 17) Global Const $Radio2 = GUICtrlCreateRadio("Binary", 264, 128, 113, 17) Global Const $Group1 = GUICtrlCreateGroup("Encryption Type", 256, 80, 121, 81) GUICtrlCreateGroup('', -99, -99, 1, 1) Global Const $Progress1 = GUICtrlCreateProgress(16, 264, 449, 25) GUISetState(@SW_SHOW) Global $selection = "" Global $error = "" Global $save = "" Global $sFile, $hFile, $sText, $nBytes Global $readbin = "" Global $Read1, $Read2, $Read3, $save1 While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $Radio1 GUICtrlSetState($Input1, $GUI_ENABLE) GUICtrlSetState($Input4, $GUI_ENABLE) $selection = "1" Case $Radio2 GUICtrlSetState($Input1, $GUI_DISABLE) GUICtrlSetState($Input4, $GUI_DISABLE) $selection = "2" Case $Encrypt GUICtrlSetData($Progress1, 0) $error = "" If $selection = "2" Then If GUICtrlRead($Input5) = "" Then MsgBox(0, "Error", "Error: Must select a destination.") EndIf If GUICtrlRead($Input5) <> "" Then $readbin = GUICtrlRead($Edit1) continue2() EndIf Else $Read1 = GUICtrlRead($Input1) $Read2 = GUICtrlRead($Input4) $Read3 = GUICtrlRead($Input5) If $Read1 = "" Then MsgBox(0, "Error", "Error: Must enter password.") $error = "1" EndIf If $Read2 = "" Then MsgBox(0, "Error", "Error: Must re-enter password.") $error = "1" EndIf If $Read3 = "" Then MsgBox(0, "Error", "Error: Must select destination.") $error = "1" EndIf If $Read1 <> $Read2 Then MsgBox(0, "Error", "Error: Passwords do not match.") $error = "1" EndIf If $error = "" Then If $selection = "1" Then continue() EndIf If $selection = "" Then MsgBox(0, "Error", "Error: Must select an encryption type.") EndIf EndIf EndIf Case $Button2 $save1 = FileSaveDialog("Save", "", "(*.txt)") $save = $save1 & ".txt" GUICtrlSetData($Input5, $save) EndSwitch WEnd Func continue() Local Const $Read4 = GUICtrlRead($Edit1) Local Const $stringencrypt = _StringEncrypt(1, $Read4, $Read1) WriteFile($stringencrypt) EndFunc ;==>continue Func continue2() Local Const $Binary = StringToBinary($readbin) If IsBinary($Binary) Then WriteFile($Binary) Else MsgBox(0, "Failure", "Binary Creation failed.") EndIf EndFunc ;==>continue2 Func WriteFile(Const $EncryptString) Local Const $StringLen = StringLen($EncryptString) Local Const $Amount = 100 / 6 BumpProgressBar($Amount) Local Const $tBuffer = DllStructCreate("char[" & $StringLen & "]") BumpProgressBar($Amount) DllStructSetData($tBuffer, 1, $EncryptString) BumpProgressBar($Amount) Local Const $hFile = _WinAPI_CreateFile($save, 1) BumpProgressBar($Amount) _WinAPI_WriteFile($hFile, DllStructGetPtr($tBuffer), $StringLen, $nBytes) BumpProgressBar($Amount) _WinAPI_CloseHandle($hFile) BumpProgressBar($Amount) EndFunc Func BumpProgressBar(Const $Amount) Local Static $Bump = $Amount $Bump += $Amount GUICtrlSetData($Progress1, $Bump) EndFunc ;==>BumpProgressBar Edited October 31, 2010 by jaberwocky6669 Helpful Posts and Websites: AutoIt3 Variables and Function Parameters MHz | AutoIt Wiki | Using the GUIToolTip UDF BrewManNH | Can't find what you're looking for on the Forum? Link to comment Share on other sites More sharing options...
derkaderka Posted October 31, 2010 Author Share Posted October 31, 2010 yes it does. I have a feeling I was trying to over complicate things with my binary function. 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