Crypter Frage

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Crypter Frage

Beitrag von cloidnerux » Fr Mär 23, 2012 8:37 am

Hashs sind in der Regel Zahlen, weil alles Zahlen sind. Aber es spricht nichts gegen Hash-Strings!?
Es ist natürlich jedem selbst überlassen, wie er einen hash bildet, aber strings sind da eher sehr suboptimal.
Zum einen hat Kmitskas Variante eine zahl mit einer 64-Bit-Magic Number XOR-Verknüpft, das heißt man hat hier eine Konvertierung von 8 auf 64 Bit und dann wieder ein Verlust von 56 Bit. Dann werden die Zeichen einzeln gehasht gespeichert, das kann verwendet werden um daraus auf die Magic-Number zu schließen, kennt man nämlich einen Buchstaben und den gehashten Buchstaben, kann man aus der Beziehung:
A ^ B = C; C ^A = B; C ^ B = A
Die magic-Number Rekonstruieren und der Hash ist wirkungslos.
Daher addiert man auch bei den meisten einfachen hash-implementationen(wie der für Dedpue) die Einzeln gehashten words oder long words auf den selben Int wieder auf, sodass am ende zwar eine sehr eindeutige Zahl herauskommt, man aber weder auf das Passwort noch auf die Magic-Number schließen kann.
Am ende kann man aber natürlich den int in eine String-Repräsentation wandeln.
Für dein Beispiel sähe das so aus:

Code: Alles auswählen

unsigned long long hashCode( string text )
{
    if(text.length() != 0)
    {
        unsigned long long hash;
        for(int i=0; i<text.length(); i++)
        {
            hash += text[i]^ 56946325879541236589545632145; 
        }
        return hash;
    }
    else
    {
        return 0; 
    }
}
Dort bekam ich erstmal einen deutlichen Dämpfer. Alles Bekloppte da, insbesondere die Lehrer. Mein Mathelehrer rechnete die Wurzel auf drei Stellen hinterm Komma genau im Kopf aus, bevor wir die Aufgabe in den Taschenrechner eingegeben hatten. Für ihn war alles trivial. Für mich nicht
Klingt für mich normal^^
Ich habe aber auch mal eine Gleichung in Physik an der Tafel ohne Taschenrechner gerechnet und war schneller beim Ergebnis als die Klassenkameraden mit Taschenrechner^^
kmitska hat geschrieben:d.h.!
Grün = Moderator
Zeig das du nicht unfähig und nicht überdurchschnittlich Dumm bist und dann hast du eine Chance bei der nächsten Moderatoren-Wahl zum Moderator ernannt zu werden ;)

MfG cloidnerux
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Fr Mär 23, 2012 10:30 am

cloidnerux hat geschrieben:
Dort bekam ich erstmal einen deutlichen Dämpfer. Alles Bekloppte da, insbesondere die Lehrer. Mein Mathelehrer rechnete die Wurzel auf drei Stellen hinterm Komma genau im Kopf aus, bevor wir die Aufgabe in den Taschenrechner eingegeben hatten. Für ihn war alles trivial. Für mich nicht
Klingt für mich normal^^
Ich habe aber auch mal eine Gleichung in Physik an der Tafel ohne Taschenrechner gerechnet und war schneller beim Ergebnis als die Klassenkameraden mit Taschenrechner^^
Rechne die Wurzel aus 177 auf drei Stellen hinter'm Komma aus und zwar in der Zeit in der ich es in den Taschenrechner eingebe.
Wenn Du bis dahin bei 13,irgendwas angekommen bist, würde ich das schon als nicht schlecht ansehen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Crypter Frage

Beitrag von Kmitska » Fr Mär 23, 2012 9:30 pm

Grün = Moderator
Zeig das du nicht unfähig und nicht überdurchschnittlich Dumm bist und dann hast du eine Chance bei der nächsten Moderatoren-Wahl zum Moderator ernannt zu werden ;)
Dann muss ich noch ein bisschen bei euch spammen, und wann ist denn die nächste Mod-Wahl?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Fr Mär 23, 2012 10:13 pm

Kmitska hat geschrieben:Dann muss ich noch ein bisschen bei euch spammen, und wann ist denn die nächste Mod-Wahl?
Sobald ich der Meinung bin, dass wir zusätzliche Moderatoren benötigen.
Danach überlege ich mir, wen ich als Moderator haben möchte und schlage denjenigen als Moderator vor.

Derzeit haben wir 5 Mods. Bevor wir neue brauchen, brauchen wir mehr Traffic.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Crypter Frage

Beitrag von Kmitska » Sa Mär 24, 2012 9:31 am

cloidnerux hat geschrieben:

Code: Alles auswählen

unsigned long long hashCode( string text )
{
    if(text.length() != 0)
    {
        unsigned long long hash;
        for(int i=0; i<text.length(); i++)
        {
            hash += text[i]^ 56946325879541236589545632145; 
        }
        return hash;
    }
    else
    {
        return 0; 
    }
}
Wie mach ich das wieder rückgängig?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Sa Mär 24, 2012 11:32 am

Kmitska hat geschrieben:Wie mach ich das wieder rückgängig?
Gar nicht.

Das ist ein Hash, keine Verschlüsselung.

Du kannst aber prüfen, ob das eingegebene Passwort den gleichen Hash ergibt - in dem Fall waren die Passwörter wohl identisch.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Crypter Frage

Beitrag von Kmitska » Sa Mär 24, 2012 1:12 pm

Ahh... jetzt weiß ich den Unterschied...

Also hash ist nur zum Prüfen da und wenn mans Verschlüsselt kann man es wieder verwenden?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Sa Mär 24, 2012 2:38 pm

Kmitska hat geschrieben:Ahh... jetzt weiß ich den Unterschied...

Also hash ist nur zum Prüfen da und wenn mans Verschlüsselt kann man es wieder verwenden?
Richtig.

Ein Hash ist auch dafür gedacht, einen Datensatz so zu verkleinern, dass man ihn in einer Tabelle wiederfinden kann. Aber das hat an dieser Stelle keine Bedeutung.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Crypter Frage

Beitrag von Kmitska » Sa Mär 24, 2012 9:53 pm

Xin, ich versuche gerade so etwas zu schreiben, was du mir gezeigt hast (dieser Link von deiner Website)

Ist das eignetlich noch sicher genug, also lohnt sich es sowas zu 'proggen'?

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Crypter Frage

Beitrag von cloidnerux » Sa Mär 24, 2012 10:06 pm

Ist das eignetlich noch sicher genug, also lohnt sich es sowas zu 'proggen'?
Die Enigma-Verschlüsselung wurde schon ~1944 von den Briten geknackt.
Daher, es ist nicht mehr sicher.
Aber es geht hier nicht um sinnvoll oder nicht, sondern darum etwas zu lernen.
Programmieren ist nicht wie Modellbauen, man kann nicht einfach iwas nachprogrammieren.
Programmieren ist eine Kunst, eine Fähigkeit, ähnlich wie das beherrschen einer Fremdsprache. Man kann natürlich sich iwas zusammenbasteln, aber man kommt nicht so weit damit.
Vor allem weil programmieren ein so großes Feld ist, angefangen von Mikrocontrollern, Embedded Systems, Server, Smartphones, Spiele, Anwendungssoftware, Steuerungssoftware und was es nicht alles gibt.
Und ich kann dir sagen, dass es sehr anspruchsvoll wird, sobald es nicht von jedem zweiten mal Programmiert wurde.
Folglich würde ich dir raten, Programmieren richtig zu lernen, sodass du auch die Zusammenhänge und den Mathematischen Hintergrund verstehst, denn das wird dir mehr helfen.

MfG cloidnerux.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten