#include #include #include #include Func Log_Start() Local $log_name = "D:\documents\coding\Crypt\crypt.log" Local $log = FileOpen($log_name, $FO_APPEND) Return $log EndFunc Func Login($log) Local $user = "Caty" Local $pass = 1234 Local $in00 = "" Local $in01 = "" For $i = 3 To 0 Step -1 Local $in00 = InputBox("Crypt", "Username") Local $in01 = InputBox("Crypt", "Password") FileWrite($log, "Username entered:" & @TAB & $in00 & @CRLF & "Password entered:" & @TAB & $in01 & @CRLF) If ($in00 = $user And $in01 = $pass) Then FileWrite($log, "Access granted on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF) MsgBox($MB_TOPMOST, "Crypt", "Access granted!") Return True Else FileWrite($log, "Access denied on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & " with " & $i & " attempts left" & @CRLF) MsgBox($MB_TOPMOST, "Crypt", "Access denied!" & @CRLF & $i & " attempt left before lockout.") EndIf Next FileWrite($log, "Lockout initiated on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF) MsgBox($MB_TOPMOST, "Crypt", "Access denied!" & @CRLF & "Too many failed attempts." & @CRLF & "Lockout initiated.") Return False EndFunc Func Mode($log) Local $m = StringLower(InputBox("Crypt", "Encrypt" & @TAB & "or" & @TAB & "Decrypt")) FileWrite($log, "Mode:" & @TAB & $m & @CRLF) If $m = "e" or $m = "en" or $m = "enc" or $m = "encr" or $m = "encry" or $m = "encryp" or $m = "encrypt" Then Return 1 ElseIf $m = "d" or $m = "de" or $m = "dec" or $m = "decr" or $m = "decry" or $m = "decryp" or $m = "decrypt" Then Return 2 Else Return 0 EndIf EndFunc Func File_encry_name($log) Local $file_encry_name = "D:\documents\coding\Crypt\" & InputBox("Crypt", "Name for the encrypted file") & ".enc" While FileExists("D:\documents\coding\Crypt\" & $file_encry_name & ".enc") $file_encry_name = InputBox("Crypt", $file_encry_name & " does already exists." & @CRLF & "Name for the encrypted file") WEnd FileWrite($log, "Encrypted file:" & @TAB & $file_encry_name & @CRLF) Return $file_encry_name EndFunc Func Encry_input($log) Local $text = InputBox("Crypt", "Enter the text that should be encrypted") FileWrite($log, "Text entered on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF) Return $text EndFunc Func Encryption($log, $text, $file) Local $len = StringLen($text) Local $f = FileOpen($file, $FO_APPEND) Local $tmp0 = "" Local $tmp1 = "" For $i = 1 To $len-1 $tmp0 = ChrW($text[$i]) FileWrite($f, $tmp0 & @CRLF) $tmp0 = "" $tmp1 = "" Next FileWrite($log, "Text encrypted on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF) FileClose($f) EndFunc Func Main() Local $log = Log_Start() FileWrite($log, @CRLF & "----------" & @CRLF & @CRLF & "Program started on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF) Local $id_login = Login($log) If Not $id_login = True Then FileWrite($log, "Program terminated on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF) FileClose($log) Exit EndIf While 1 Local $mode = Mode($log) If $mode = 1 Then Local $file_encry = File_encry_name($log) Local $text = Encry_input($log) Local $enc = Encryption($log, $text, $file_encry) ElseIf $mode = 2 Then ; file decrypt, yet unfinished Else FileWrite($log, "Program terminated on " & @MDAY & "." & @MON & "." & @YEAR & " at " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF) FileClose($log) Exit EndIf WEnd EndFunc Main()