Neue Idee des Dateiübertragens !

  • Hallo liebe Community,
    mir ist gestern eine neue Idee gekommen.
    Nehmen wir mal an, es würde nur noch ein Instant Messenger funktionieren.
    (Was Internet betrifft)
    Und man möchte sich eine Datei schicken.
    Man kann doch eine Datei in einen Code umwandeln.
    Binärcode denk ich mal.
    Ein kleines Testskript war:

    [autoit]

    MsgBox (1, "", Hex(StringtoBinary("Test.jpg")))

    [/autoit]


    Das Bild war ca. 80 kb groß.

    Und SO viele ZAHLEN, hab ich schon lange nicht mehr gesehen ^^
    Da kam mir eine Idee !

    Ich schreibe 2 Skripte.
    Die jeweils "verschlüsseln" und "entschlüsseln" können.
    Ist eigentlich ganz einfach!
    Nur das Sende kapazität eines Instant Messengers wird nie ausreichen..
    Sei es ICQ, MSN, Skype und Co.
    Denn alleine bei dem Versuch die Zahl zu kopieren und in ICQ einzufügen, hat dieses schkapp gemacht.

    Gibt es keine Möglichkeit, einen Binärcode in Hex Form zu kürzen?!

    Irgendwelche Algorythmen werden doch wohl bewirken, das der Code kleiner wird.
    Oder irre ich mich da?

  • Hab das mal ganz dreist aus der _InetSmtpAuth() geklaut:

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ;
    ; Function Name: _Base64Encoding()
    ; Description: Kodiert eine Zeichenfolge mit dem Base64-Verfahren
    ; (http://de.wikipedia.org/wiki/Base64)
    ; Parameter(s): $String - Zeichenfolge die kodiert werden soll
    ; Requirement(s): None
    ; Return Value(s): Kodierte Zeichenfolge
    ; Authors: bernd670
    ;
    ;===============================================================================
    Func _Base64Encoding($String)

    $strUmsetzung = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    $strRetValue = ""

    For $i = 1 To StringLen($String) Step 3
    $strTok = StringMid($String, $i, 3)
    Switch StringLen($strTok)
    Case 3
    $iTokVal = (Asc(StringMid($strTok, 1, 1)) * 256 + _
    Asc(StringMid($strTok, 2, 1))) * 256 + _
    Asc(StringMid($strTok, 3, 1))
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1)
    $iTokVal = BitShift($iTokVal, 6)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1) & $strTokCryt
    $iTokVal = BitShift($iTokVal, 6)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1) & $strTokCryt
    $iTokVal = BitShift($iTokVal, 6)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1) & $strTokCryt
    $strRetValue &= $strTokCryt

    Case 2
    $iTokVal = (Asc(StringMid($strTok, 1, 1)) * 256 + _
    Asc(StringMid($strTok, 2, 1))) * 256
    $iTokVal = BitShift($iTokVal, 6)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1)
    $iTokVal = BitShift($iTokVal, 6)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1) & $strTokCryt
    $iTokVal = BitShift($iTokVal, 6)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1) & $strTokCryt
    $strRetValue &= $strTokCryt & "="

    Case 1
    $iTokVal = Asc(StringMid($strTok, 1, 1)) * 65536
    $iTokVal = BitShift($iTokVal, 12)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1)
    $iTokVal = BitShift($iTokVal, 6)
    $strTokCryt = StringMid($strUmsetzung, (BitAND($iTokVal, 63)) + 1, 1) & $strTokCryt
    $strRetValue &= $strTokCryt & "=="

    EndSwitch
    Next

    Return $strRetValue
    EndFunc ;==>_Base64Encoding

    [/autoit]
  • Das ist schon richtig ! :)

    Kann man das Ergebnis denn noch kürzen? :D
    Wenn ich einen Code verschicken will, der beim Gegenüber dann zusammengesetzt werden soll, dann muss der so kurz wie möglich sein ^^

  • Das Ziel ist eigentlich, ein relativ kleiner Code =D
    Dann kann man sogar via Text Dateien verschicken.
    Größenteils eine Spielerei :p

  • Beispiel:
    Wir haben ein Bild.
    Das möchten wir einlesen und in den Binär code verwandenln.
    Dann zum Beispiel über nen Chat versenden und das gegenüber kann den "Decoden".

    Fertig =D

    Aber dabei ist mir aufgefallen, das der Code sehr sehr lang ist.
    Daher wollte ich den Irgendwie kürzen.
    Algorythmen o.ä :p

  • Hey,
    du denkst also du kannst die Daten so klein bekommen, dass du die Einfach im Nachrichtenfenster verschicken kannst?
    Das wird niemals möglich sein, wenn du am Ende noch ein Bild sehen möchtest.
    Man kann Daten zwar komprimieren, aber am Ende enthält die Datei trotzdem alle wichtigen Informationen (z.B: Bildinformationen).
    Und da JPGs schon sehr gut komprimiert sind (Ziel des Dateisystems), wird man da an Komprimierung nicht mehr viel rausholen können.
    Die Komprimierung des Bildformates ist ja schon ein "Algorithmus".

  • Also:

    Ich habe mal (vor einiger Zeit) einen kleinen Verschlüsselungsapparat gebastelt.

    Er enthält leider Programmtechnisch ziemliche Schnitzer und ist nicht Optimal aufgebaut.
    (auch die Geschwindigkeit beim Codieren und Decodieren ist ziemlich elendig bei größeren Datenmengen ab 15kb Text^^)

    Der Sinn war, dass man in Messengern verschlüsselten text als Nachricht schicken konnte, der dann entschlüsselt werden musste.
    (um die stasi zu hintergehen, weil dies dann nicht lesen können xD)

  • Er enthält leider Programmtechnisch ziemliche Schnitzer und ist nicht Optimal aufgebaut.
    (auch die Geschwindigkeit beim Codieren und Decodieren ist ziemlich elendig bei größeren Datenmengen ab 15kb Text^^)


    und wegen dieser Botschaft gräbst du diesen alten Thread noch einmal aus, Leichenschänder ;):!: