Verschlüsselung durch "Gartenzaunverschlüsselung"

Du hast eine Idee für ein Projekt?
wrrr91
User
Beiträge: 9
Registriert: Donnerstag 12. März 2009, 18:23

Donnerstag 12. März 2009, 18:29

Hallo liebe community !
Und zwar suche ich ein Programm mit dem ich die sogenannte "Gartenzaunverschlüsselung" realisieren kann... leider bin ich total neu in diesem Gebiet und Bitte daher um eure Mithilfe... Leider bräuchte ich diese Programm bis heute abend..... :lol:


MfG WrrR91
[/code]
Benutzeravatar
Damaskus
Administrator
Beiträge: 919
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

Donnerstag 12. März 2009, 19:30

Hallo und Willkommen im Forum.

Ich würd hier http://www.python-forum.de/topic-1689.html mal reinschauen.

Gruß
Damaskus
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Donnerstag 12. März 2009, 20:34

Hier mal ein kleiner Ansatz zum Verschlüsseln, entschlüsseln müsstest damit selber hinbekommen.

Code: Alles auswählen

#!/usr/bin/env python

def crypt(message):
	lines = 2
	words = []
	for i in range(lines):
		s = ""
		words.append(s)
	current_line = 0
	for char in message:
		words[current_line] += char
		current_line += 1
		if current_line >= lines:
			current_line = 0
	return words

if __name__ == "__main__":
	print crypt("Das ist ein langer String.")
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Donnerstag 12. März 2009, 20:43

Mir war langweilig^^
http://paste.pocoo.org/show/107639/

Jetzt will ich aber ein Dankeschön hören :roll:
BlackJack

Donnerstag 12. März 2009, 21:02

Da kann sich der OP echt bedanken, dass sieht nämlich so gruselig umständlich und unpythonisch aus, dass der Lehrer wahrscheinlich glaubt, dass es vom OP ist. Dann noch die falschen Funktionsnamen… :twisted:
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Donnerstag 12. März 2009, 21:11

BlackJack hat geschrieben:Da kann sich der OP echt bedanken, dass sieht nämlich so gruselig umständlich und unpythonisch aus,
Warum??

Und nicht jeder ist in Englisch ein Ass :(
wrrr91
User
Beiträge: 9
Registriert: Donnerstag 12. März 2009, 18:23

Donnerstag 12. März 2009, 22:25

ice2k3 hat geschrieben:Mir war langweilig^^
http://paste.pocoo.org/show/107639/

Jetzt will ich aber ein Dankeschön hören :roll:

DANKE DANKE DANKE DANKE DANKE DANKE =)=)=)=)=)=)=)=)=) <3 <3


ich danke dir viiieeelllmmmaaalllls :D:D
wrrr91
User
Beiträge: 9
Registriert: Donnerstag 12. März 2009, 18:23

Donnerstag 12. März 2009, 22:31

ice2k3 hat geschrieben:Mir war langweilig^^
http://paste.pocoo.org/show/107639/

Jetzt will ich aber ein Dankeschön hören :roll:
aber wie funktioniert das? ^^

edit: bei mersten evrstehe ich wie es geht aber wie gehts das2. wie kann ich es entschlüsseln lassen? :P
BlackJack

Donnerstag 12. März 2009, 22:51

@ice2k3: Warum das so aussieht? Na weil Du's so geschrieben hast. ;-)

Du verwendest ``for``-Schleifen über `range()` um Indexe zu generieren, Zähler die "manuell" hochgezählt werden, umständliches ``if``\s statt Modulo-Arithmetik, und geschachteltes Indexing auf `words`.

Der Name `encrypt` ist genau falsch, die Funktion müsste `decrypt` heissen. Das die einfach nur die Nachricht, und keinen Schlüssel als Argument benötigt, macht das Ganze komplett sinnlos. Wenn man eine verschlüsselte Nachricht, völlig ohne "geheimes" Wissen entschlüsseln kann, braucht man ja gar nicht erst verschlüsseln.

Mein Versuch:

Code: Alles auswählen

from functools import partial


def crypt(message, key, encrypt=True):
    if key < 2:
        raise ValueError('key must be >= 2')
    message += ' ' * (-len(message) % key)
    step = key if encrypt else len(message) // key
    return ''.join(message[i::step] for i in xrange(step)).rstrip()


encrypt = crypt
decrypt = partial(crypt, encrypt=False)


def main():
    message = 'Das ist eine lange Zeichenkette.'
    for i in xrange(2, 10):
        crypted = encrypt(message, i)
        print '%d) %-38r %-38r' % (i, crypted, decrypt(crypted, i))
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Donnerstag 12. März 2009, 23:09

Und welche der beiden Lösung ist jetzt wohl besser um einen Algorithmus aufzuzeigen. Und genau darum geht es ja wohl hier...

Und nach dem Verschlüsseln müssen die einzelnen Zeilen getrennt vorliegen, ist bei dir auch nicht der Fall!

Hab außerdem noch Fehler im Algorithmus, die müssten bei dir auch mit drin sein.
lunar

Donnerstag 12. März 2009, 23:26

ice2k3 hat geschrieben:Und welche der beiden Lösung ist jetzt wohl besser um einen Algorithmus aufzuzeigen.
Ganz ehrlich? BlackJacks. Der Algorithmus hat sich ja nicht geändert, aber BlackJack hat in auf eine Art und Weise implementiert, die den Möglichkeiten der Sprache und der Mathematik gerecht wird. Dein Algorithmus verwendet ja noch nicht mal so grundlegende Dinge wie modulare Arithmetik (aka Restwertdivision).
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Donnerstag 12. März 2009, 23:27

Hier noch eine viel "grausamere", aber funktionierende Variante.
Das ist echt hässlich, aber diesmal ist es der richtige Algorithmus.
(Wenn es z.B. 3 Zeilen gibt, muss zuerst in die 1. Zeile, dann 2. dann 3. dann 2. dann 1. dann 2., ... Zeile geschrieben werden)

Bin mal gespannt, wie und ob du das in richtigem Python löst^^

http://paste.pocoo.org/show/107678/
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Freitag 13. März 2009, 11:49

ice2k3 hat geschrieben: Das ist echt hässlich, aber diesmal ist es der richtige Algorithmus.
Kannst Du uns dazu mal eine Quelle geben bitte? (Zumal ich noch nicht erkennen kann, inwiefern es einen sicherheitsrelevanten Unterschied macht, ob ich von "unten" wieder nach oben gehe oder wieder von der ersten zur letzten Zeile! Im Zweifel ist das exakt ein Versuch mehr beim Entschlüsslen ;-) Oder habe ich da was übersehen?)
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Freitag 13. März 2009, 12:11

Google: "Gartenzaunverschlüsselung"
Erster Treffer.

Kann ja nicht so schwer sein...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Freitag 13. März 2009, 12:24

ice2k3 hat geschrieben:Google: "Gartenzaunverschlüsselung"
Erster Treffer.

Kann ja nicht so schwer sein...
Das ist ja wohl nicht Dein Ernst?!? google benutzen kann ich schon - ich merke aber an Deinem Kommentar, dass Du Dir gar keine Mühe gemacht hast, eine seriöse Quelle zu suchen!

Meine Frage bezog sich auf eine wissenschaftliche Beschreibung dieser Methode - du lieferst mir einen Aufgabenzettel (Und das noch als ersten Treffer bei google)! :roll:
Antworten