AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Hash-Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Hash-Funktion

Ein Thema von HugoHase · begonnen am 15. Dez 2008 · letzter Beitrag vom 29. Dez 2008
Antwort Antwort
Seite 3 von 3     123   
HugoHase
Registriert seit: 4. Mai 2008
Einen schönen guten Tag an alle.

Ich hoffe Ihr wisst alle was eine Hash-Funktion ist. Für alle die es nicht wissen gibt es diesen Link.
Genau dieses Thema behandel ich in meiner BLL(Facharbeit fürs Abitur).
Und da ich wie ich meine ein weinig kreativ war, ist bei der ganzen Sache auch etwas entstanden:

FP32 - das ist meine eigene Hash-Funktion.
Sie gibt einen 32 Zeichen langen String aus und benutzt folgendes 91 Zeichen langes Ausgabe-Alphabet:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789!"§$%&/()=?_-[]{}+*~#<>:,.|;\"
Im Anhang an dieses Thema werdet ihr die Datei uFP32.dcu finden welche diese Funktion beihaltet.
Quellcode kann ich euch aus sicherheitstechnischen Gründen noch nicht geben, verspreche aber nach der Abgabe
meiner Facharbeit diesen zu posten.
Was ich von euch jetzt möchte, ist das ihr versucht Kollisionen zu finden und mir diese bitte zu melden.
Ansosnten denke ich, dass die Hash-Funktion durchaus geeignet ist um sie in ein kleines privates Projekt
einzubinden, um eventuell eine Passwort abfrage ohne Klartext zu tätigen.

In diesem Sinne viel Spaß damit

Gruß HugoHase
Angehängte Dateien
Dateityp: exe fp32_133.exe (369,0 KB, 19x aufgerufen)
Dateityp: dcu ufp32_157.dcu (4,4 KB, 11x aufgerufen)
I hacked 127.0.0.1
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#21
  Alt 29. Dez 2008, 14:57
erstmal nur was zum Code

die "globalen" Variablen sind etwas verwirrend (beim Codeverstehn, da man nicht so direkt nachvollziehen kann wie die wohin übergeben und verwendet werden)
Delphi-Quellcode:
var schluessel: byte; //primär Schlüssel
    high, low: byte;
    vz, laenge, sS : integer;
    ch : boolean;
dann wäre es nicht nötig gewesen intern je eine Funktion für String und ByteArra zu machen.
(doppelter Code)

mit String hast'e unter D2009 einige Probleme, da dieses dort standardmäig ein UnicodeString ist (2 Byte pro Char) ... wär wohl besser AnsiString zu verwenden

ist dir aufgefallen, daß String und ByteArray eine unterschiedliche Indizierung der Elemente verwenden?
(so auf dn ersen blick sieht es so aus, als wenn du immer von 1 bis Length-1) arbeitest, aber
ByteArray: 0 bis Length-1
String: 1 bis Length
was doch eigentlich in 'ner fehlerhaften/unterschiedlichen Berechnung resultieren dürfte (noch nicht getestet)

nja und auf ein/zwei Optimierungen geh ich erstmal nicht ein, da es hier wohl mehr nur auf das Prinzip (die Berechnung) ankommt



[add]
im Anhang mal die Unit ohne mehrfachen Code für String und ByteArray (jetzt geben beide Hash-Funktionen auch auf jedenfall das Selbe Ergebnis aus)

es sollte aber zusätzlich dennoch die Sache mit den "globalen" Variablen reguliert werden!

Dieses hier (siehe folgender Code) liefert mit deinem Original-Quellcode unterschiedliche Hashs,
obwohl die übergebenen Daten den selben Inhalt aufweisen und es sollte doch keinen Unterschied machen, ob die Daten in einer "Datei" (TByteM) oder einem "Text" (String) vorliegen

Delphi-Quellcode:
var S: String;
    B: TByteM;
begin
  S := '123456789';
  SetLength(B, Length(S));
  Move(S[1], B[0], Length(S));
  Edit1.Text := hash(S);
  Edit2.Text := hash(B);
end;
Code:
Edit1: 8C131659DD81F2174918ECE7A386C19C0215B56C5C838A21BB127EF1158053A6
Edit2: 25CFAF1DA1ADD7457F9B158B637943B33B5781F1313BAF1F0913DD5DF709118B
Angehängte Dateien
Dateityp: pas ufp64_937.pas (7,5 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz