[..] Bug cryptage

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Tooniixx
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 24 avr. 2015 23:49
Status : Hors ligne

[..] Bug cryptage

#1

Message par Tooniixx »

Bonjour a tous, je voudrai créer un script pour un cryptage de Vigenère, j'ai parcouru des forum et je suis tomber sur sa https://www.autoitscript.com/forum/topi ... re-cypher/

Il est très bien, je l'ai modifier mais il y a des petit soucis, tout d'abord si la clé de chiffrement est plus grande que le premiers mot du texte a chiffré, le programme ce ferme, exemple la clé de crypter est "TEST", le premiers mot du texte a crypter est "Le", alors le programme ce ferme.

Petit autre soucis, une fois que j'ai déjà crypter ou décrypter un premier message, impossible d'en faire un autre dans la foulé, je doit re lancer le programme ( pas très conviviale )

Voila "mon" script, qu'en dites vous ?

Code : Tout sélectionner

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>

#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 367, 331, 440, 231)
Global $Input1 = GUICtrlCreateInput("Insérer la clé ici", 96, 8, 121, 18, $ES_MULTILINE)
Global $Input2 = GUICtrlCreateInput("", 16, 136, 168, 168, $ES_MULTILINE)
Global $Input3 = GUICtrlCreateInput("", 185, 136, 168, 168, $ES_MULTILINE)
Global $Label1 = GUICtrlCreateLabel("Clé de cryptage:", 16, 8, 81, 17)
Global $Label2 = GUICtrlCreateLabel("Texte non crypter", 16, 112, 87, 17)
Global $Label3 = GUICtrlCreateLabel("Texte crypter:", 232, 112, 87, 17)
Global $Button1 = GUICtrlCreateButton("Crypter!", 50, 305, 75, 25)
Global $Button2 = GUICtrlCreateButton("Décrypter!", 240, 305, 75, 25)
Global $Button3 = GUICtrlCreateButton("Effacer", 280, 8, 75, 25)
Global $Button4 = GUICtrlCreateButton("Crypter fichier .txt", 260, 50, 90, 25)
Global $Button5 = GUICtrlCreateButton("Décrypter fichier .txt", 250, 80, 100, 25)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$Alphabet = StringSplit("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ ", "")
_ArrayDelete($Alphabet, 0)
Global $VigCypher[37][37]
Global $VigCypher2[37][37]
$a = 1
For $c = 0 To 36
    Global $ccopy = $c
    VigFill($c)
Next
For $d = 0 To 36
    Global $dcopy = $d
    VigFill2($d)
Next

Func VigFill($offset)
    Dim $res[37]
    For $a = 0 To 36
        $VigCypher[$ccopy][$a] = $Alphabet[Mod($a + $offset, 37)]
    Next
EndFunc   ;==>VigFill
Func VigFill2($offset2)
    Dim $res[37]
    For $a = 0 To 36
        $VigCypher2[$dcopy][$a] = $Alphabet[Mod(37 + $a - $offset2, 37)]
    Next
EndFunc   ;==>VigFill2



While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit


        Case $Form1
        Case $Input1
        Case $Input2
        Case $Label1
        Case $Label2
        Case $Label3
        Case $Input3
        Case $Button1
            $cle = GUICtrlRead($Input1)
            $nocrypt = GUICtrlRead($Input2)
            $crypt = GUICtrlRead($Input3)

            While $a < StringLen($nocrypt)
                For $c = 1 To StringLen($cle)
                    $KeyPlace = _ArraySearch($Alphabet, StringMid($cle, $c, 1))
                    $TextPlace = _ArraySearch($Alphabet, StringMid($nocrypt, $a, 1))
                    $crypt = $crypt & $VigCypher[$KeyPlace][$TextPlace]
                    $a += 1
                Next
                GUICtrlSetData($Input3, $crypt)
            WEnd
        Case $Button2
            $cle = GUICtrlRead($Input1)
            $nocrypt = GUICtrlRead($Input2)
            $crypt = GUICtrlRead($Input3)

            While $a < StringLen($crypt)
                For $d = 1 To StringLen($cle)
                    $KeyPlace = _ArraySearch($Alphabet, StringMid($cle, $d, 1))
                    $TextPlace = _ArraySearch($Alphabet, StringMid($crypt, $a, 1))
                    $nocrypt = $nocrypt & $VigCypher2[$KeyPlace][$TextPlace]
                    $a += 1
                Next
                GUICtrlSetData($Input2, $nocrypt)
            WEnd
        Case $Button3
            GUICtrlSetData($Input2, "")
            GUICtrlSetData($Input3, "")
        Case $Button4
            $cle = GUICtrlRead($Input1)
            if $cle = "" Then
                MsgBox(0,"Attention!","ATTENTION, LA CLE D'ENCRYPTION EST VIDE!")
                EndIf
            $KeyWord = $cle
            $File = FileOpenDialog("Sélectionner fichier a crypter", "C;\", "txt (*.txt)")
            $Text = FileRead($File)
            $a = 1
            MsgBox(0, "Contenu du fichier", $Text)
            $EncryptText = ""
            GUICtrlSetData($Input2, $Text)

            While $a < StringLen($Text)
                For $c = 1 To StringLen($KeyWord)
                    $KeyPlace = _ArraySearch($Alphabet, StringMid($KeyWord, $c, 1))
                    $TextPlace = _ArraySearch($Alphabet, StringMid($Text, $a, 1))
                    $EncryptText = $EncryptText & $VigCypher[$KeyPlace][$TextPlace]
                    $a += 1
                Next
                GUICtrlSetData($Input3, $EncryptText)

            WEnd

        Case $Button5
                        $cle = GUICtrlRead($Input1)
$KeyWord = $cle
$File = FileOpenDialog("Sélectionner fichier a décrypter..","C;\","txt (*.txt)")
$Text2 = FileRead($file)
$a = 1
MsgBox(0,"Crypatge:",$Text2)
$DecryptText=""
            GUICtrlSetData($Input3, $Text2)

While $a<StringLen($Text2)
    For $d = 1 to StringLen($KeyWord)
        $KeyPlace = _ArraySearch($Alphabet,StringMid($KeyWord,$d,1))
        $TextPlace = _ArraySearch($Alphabet,StringMid($Text2,$a,1))
        $DecryptText = $DecryptText&$VigCypher2[$Keyplace][$TextPlace]
        $a+=1
    Next
    GUICtrlSetData($Input2, $DecryptText)
WEnd

    EndSwitch
WEnd
 
Merci de vos réponses
Répondre