Krypt tool

  • hallo
    ich möchte ein crypt tool erstellen

    es ist zum verschlüsseln von nachreichten gedacht.

    es sollte einen text z.b. hallo in AABBBAAAAAABABAABABAABBAB umwandeln

    dies ist die bacon chiffre

    da h = AABBB
    und a = AAAAA
    usw.

    nun soll es eine textdatei schreiben und alle A fett schreiben und alle B kursiv

    nun meine frage
    wie schreibe ich in einer textdatei kursiv oder fett??

  • ich hab vor kurzem ein script geschrieben das so ähnlich funktioniert, es verschlüsselt den Text im rc4 format mit nem passwort

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <String.au3>
    #region GUI
    guicreate("Encrypter", 500, 500)
    guictrlcreateedit("Nachricht die Verschlüsset werden soll", 5, 5, 490, 430) ;ID=3
    guictrlcreateedit("Passwort", 5, 435, 150,50) ;ID=4
    guictrlcreatebutton("Codieren", 155, 435, 75, 50) ;ID=5
    guictrlcreatebutton("Decodieren", 230, 435, 75, 50) ;ID=6
    guictrlcreateinput("1", 400,435,50,30) ;ID=7
    guictrlcreateupdown(7)
    guictrlcreatelabel("Level:", 310, 435)
    guisetstate(@SW_SHOW)
    #endregion GUI

    [/autoit] [autoit][/autoit] [autoit]

    #region Encryption
    while 1
    $msg = guigetmsg()
    if $msg= $GUI_EVENT_CLOSE then Exit
    Select
    case $msg= 5
    $nachricht=guictrlread(3)
    $passwort=guictrlread(4)
    $level=guictrlread(7)
    $codiert=_stringencrypt(1, $nachricht,$passwort,$level)
    guictrlsetdata(3,$codiert)
    case $msg= 6
    $nachricht=guictrlread(3)
    $passwort=guictrlread(4)
    $level=guictrlread(7)
    $codiert=_stringencrypt(0,$nachricht,$passwort,$level)
    guictrlsetdata(3,$codiert)
    endselect

    wend
    #endregion Encryption

    [/autoit]

    Viel Spaß dmit

    Mfg

    Computers are like Airconditioning. They don´t work with open Windows.

  • bin fertig^^

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $a="AAAAA"
    Global $b="AAAAB"
    Global $c="AAABA"
    Global $d="AAABB"
    Global $e="AABAA"
    Global $f="AABAB"
    Global $g="AABBA"
    Global $h="AABBB"
    Global $i="ABAAA"
    Global $k="ABAAB"
    Global $l="ABABA"
    Global $m="ABABB"
    Global $n="ABBAA"
    Global $o="ABBAB"
    Global $p="ABBBA"
    Global $q="ABBBB"
    Global $r="BBBBB"
    Global $s="BBBBA"
    Global $t="BBBAB"
    Global $u="BBBAA"
    Global $v="BBABB"
    Global $w="BBABA"
    Global $x="BBAAB"
    Global $y="BBAAA"
    Global $z="BABBB"
    Global $leer="BABBA"

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    Msgbox(1,"","Der Tarntext muss mindestens 5 mal so lange sein wie der Geheimtext!")
    $Form1_1 = GUICreate("Verschlüsseln", 422, 313, 286, 175)
    $tarn = GUICtrlCreateEdit("", 10, 10, 250, 300)
    GUICtrlSetData(-1, "Tarntext")
    $los = GUICtrlCreateButton("Los", 270, 10, 120, 50)
    $geheim = GUICtrlCreateEdit("Geheimtext", 272, 72, 137, 233)
    GUICtrlSetData(-1, "Geheimtext")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $los
    _geheim_to_zwischendatei()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _geheim_to_zwischendatei()
    $split_tarn = StringSplit(GUICtrlRead($tarn),"")
    $geheimklein = StringLower(GUICtrlRead($geheim))
    $geh = stringsplit($geheimklein,"")
    $zwischendatei = _FileCreate(@TempDir & "abc.txt")
    $offen = FileOpen(@TempDir & "abc.txt",2)
    $is = 1

    [/autoit] [autoit][/autoit] [autoit]

    for $is = 1 to $geh[0]
    Select
    case $geh[$is] = "a"
    FileWrite($offen,$a)
    case $geh[$is] = "b"
    FileWrite($offen,$b)
    case $geh[$is] = "c"
    FileWrite($offen,$c)
    case $geh[$is] = "d"
    FileWrite($offen,$d)
    case $geh[$is] = "e"
    FileWrite($offen,$e)
    case $geh[$is] = "f"
    FileWrite($offen,$f)
    case $geh[$is] = "g"
    FileWrite($offen,$g)
    case $geh[$is] = "h"
    FileWrite($offen,$h)
    case $geh[$is] = "i"
    FileWrite($offen,$i)
    case $geh[$is] = "j"
    FileWrite($offen,$i)
    case $geh[$is] = "k"
    FileWrite($offen,$k)
    case $geh[$is] = "l"
    FileWrite($offen,$l)
    case $geh[$is] = "m"
    FileWrite($offen,$m)
    case $geh[$is] = "n"
    FileWrite($offen,$n)
    case $geh[$is] = "o"
    FileWrite($offen,$o)
    case $geh[$is] = "p"
    FileWrite($offen,$p)
    case $geh[$is] = "q"
    FileWrite($offen,$q)
    case $geh[$is] = "r"
    FileWrite($offen,$r)
    case $geh[$is] = "s"
    FileWrite($offen,$s)
    case $geh[$is] = "t"
    FileWrite($offen,$t)
    case $geh[$is] = "u"
    FileWrite($offen,$u)
    case $geh[$is] = "v"
    FileWrite($offen,$v)
    case $geh[$is] = "w"
    FileWrite($offen,$w)
    case $geh[$is] = "x"
    FileWrite($offen,$x)
    case $geh[$is] = "y"
    FileWrite($offen,$y)
    case $geh[$is] = "z"
    FileWrite($offen,$z)
    case $geh[$is] = " "
    FileWrite($offen,$leer)
    EndSelect
    Next

    FileClose($offen)
    _zwischendatei_und_tarntext_vereint()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _zwischendatei_und_tarntext_vereint()
    $enddatei = FileSaveDialog("crypt",@DesktopDir,"Text (*.rtf)",0,"test")
    _FileCreate($enddatei & ".rtf")
    $enddatei_offen = FileOpen($enddatei & ".rtf",2)
    $tarnklein = StringLower(GUICtrlRead($tarn))
    $tarn_split = stringsplit($tarnklein,"")
    $file = FileOpen(@TempDir & "abc.txt", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $aRecords
    If Not _FileReadToArray(@TempDir & "abc.txt",$aRecords) Then
    MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    For $x = 1 to $aRecords[0]
    $string = StringSplit($aRecords[1],"")
    next

    [/autoit] [autoit][/autoit] [autoit]

    FileWrite($enddatei_offen,"{\rtf1")
    $ah = 1

    [/autoit] [autoit][/autoit] [autoit]

    for $ah = 1 to $tarn_split[0]
    Select
    case $string[$ah] = "A"
    FileWrite($enddatei_offen,"{\b ")
    FileWrite($enddatei_offen,$tarn_split[$ah])
    FileWrite($enddatei_offen,"}")

    case $string[$ah] = "B"
    FileWrite($enddatei_offen,"{\i ")
    FileWrite($enddatei_offen,$tarn_split[$ah])
    FileWrite($enddatei_offen,"}")
    EndSelect
    Next
    FileWrite($enddatei_offen,"}")
    FileClose($enddatei_offen)
    FileDelete(@TempDir & "abc.txt")
    ShellExecute($enddatei & ".rtf")
    Exit
    EndFunc

    [/autoit]

    verbesserungsvorschläge?

  • Nettes Skript :thumbup:
    Hab mal die Funktion zum Ver- und Entschlüsseln ein bischen verbessert. Nun kann man alle Zahlen, Zeichen, Buchstaben verwenden.
    Vllt kannst du das ja brauchen.

    Spoiler anzeigen
    [autoit]

    $Test = _baconchiffre(1, 'Das ist ein Test ?') ;verschlüsseln
    MsgBox(0,'Chiffre', $Test)
    MsgBox(0,'Chiffre', _baconchiffre(0, $Test)) ;entschlüsseln

    [/autoit] [autoit][/autoit] [autoit]

    Func _baconchiffre($i_Encrypt, $sText)
    Local $aString, $sReturn = ''
    Switch $i_Encrypt
    Case 1
    $aString = StringRegExp($sText, '.', 3)
    For $i = 0 To UBound($aString) -1
    $aString[$i] = _Int2Bits(Asc($aString[$i]))
    While StringLen($aString[$i]) < 9
    $aString[$i] = '0'&$aString[$i]
    WEnd
    $aString[$i] = StringReplace($aString[$i], '0', 'A')
    $aString[$i] = StringReplace($aString[$i], '1', 'B')
    $sReturn &= $aString[$i]
    Next
    Return $sReturn
    Case 0
    $aString = StringRegExp($sText, '.{9}', 3)
    For $i = 0 To UBound($aString) -1
    $aString[$i] = StringReplace($aString[$i], 'a', '0')
    $aString[$i] = StringReplace($aString[$i], 'b', '1')
    $aString[$i] = Chr(_Bits2Int($aString[$i]))
    $sReturn &= $aString[$i]
    Next
    Return $sReturn
    EndSwitch
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Int2Bits($iZahl)
    If $iZahl < 0 Or $iZahl > 2147483647 Then Return SetError(1, 0, 0)
    Local $Zahl = $iZahl, $Ergebnis = ""
    Do
    $Ergebnis = BitAND($Zahl, 1) & $Ergebnis
    $Zahl = BitShift($Zahl, 1)
    Until $Zahl = 0
    Return $Ergebnis
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Bits2Int($sBin)
    Local $Zahl = $sBin, $Ergebnis = 0
    For $i = 0 To StringLen($sBin) -1
    If StringRight($Zahl, 1) = '1' Then $Ergebnis += 2^($i)
    $Zahl = StringTrimRight($Zahl, 1)
    Next
    Return $Ergebnis
    EndFunc

    [/autoit]