![]() |
Passwörter generieren (Besondere)
Hallo,
wie der Titel schon verrät möchte ich einen Passwortgenerator erstellen! :-D Kennt jemand zufällig eine Funktion oder DLL (mit Quellcode :thumb: bitte) mit der man soetwas machen kann? Bedingung: Man kann: a) die Länge angeben b) die Zeichen angeben c) wenn möglich auch die Stärke angeben Danke schonmal! |
AW: Passwörter generieren (Besondere)
Zitat:
|
AW: Passwörter generieren (Besondere)
Sorry, hab mich nicht richtig ausgedrückt. ICH will ja daraus lernen, verstehe aber das Prinzip nicht.
Mit DLL meinte ich Quellcode, keine erstellte DLL :wink: Wie funktioniert soetwas? Außerdem ist der Passwortgenerator nur eine art Funktion für das Programm, irgendwo müssen ja die Passwörter her die mein Programm für andere Sachen brauch! (Ist ein Verschlüsselungsprogramm für Texte!) DelphiSecurity |
AW: Passwörter generieren (Besondere)
|
AW: Passwörter generieren (Besondere)
Zitat:
|
AW: Passwörter generieren (Besondere)
Hat dein Delphi denn keine Hilfe? :roll:
|
AW: Passwörter generieren (Besondere)
Achso.... Muss die noch installieren :wink: :wink: :wink:
|
AW: Passwörter generieren (Besondere)
Ein Zufallspasswort kannst du z.B. so erzeugen:
Delphi-Quellcode:
function RandomString(const len: Integer; const CharSet: string): string;
var i: Integer; pResult : PChar; begin SetLength(Result,len); // Speicher im Result-String reservieren pResult := PChar(Result); for i := 1 to len do begin pResult^ := CharSet[1+Random(Length(CharSet))]; Inc(pResult); end; end; ... neuesPasswort := RandomString(6, ['0'..'9', 'A'..'Z']); |
AW: Passwörter generieren (Besondere)
Wobei man noch einmalig vorher Randomize aufrufen muss.
Und selbst dann wäre Random nicht kryptographisch sicher. |
AW: Passwörter generieren (Besondere)
Es wird ja auch nur das Passwort generiert und nichts damit verschlüsselt. Und zum Generieren reicht es. Oder was sollte bei einem kryptografisch sicheren Zufallsgenerator anderes rauskommen, als ein zufälliges Passwort?
|
AW: Passwörter generieren (Besondere)
Wenn man den Algorithmus dahinter kennt - und das tut man im Falle von Delphis Random-Funktion ja - kann man wahrscheinlich mit nur einem bekannten Passwort, also z.B. seinem eigenen, die nachfolgend generierten Passwörter selbst berechnen. (Und selbst ohne bekanntem Passwort geht es, wenn auch etwas ungenauer, da als Saat ja nur die Zeit genutzt wird).
Wo ist dann da die Sicherheit? |
AW: Passwörter generieren (Besondere)
Zitat:
|
AW: Passwörter generieren (Besondere)
OK, Beispiel: Mein Passwort für die Delphipraxis habe ich mit Delphi unter der Verwendung von Random erstellt. Es lauter jqf73wcnjwie. Auch für den FTP-Zugang meines Webspace habe ich mit ein Passwort so generieren lassen. Jetzt kannst du mir sicher sagen, wie es lautet.
Man naht nur dann ein Problem, wenn man sich eine Serie von Passwörtern generieren lässt und sie dann auch in einer Serie verwendet. Also Datren1 mit Passwort1 verschlüsseln, Daten2 mit Passwort2 verschlüsseln und so weiter. Aber selbst dann müsste man den Zeitstempel kennen, um die Passwörter zu reproduzieren zu können. |
AW: Passwörter generieren (Besondere)
Kann man denn einstellen welche Zeichen vorkommen sollen???
|
AW: Passwörter generieren (Besondere)
Ja. Quellcode angucken und verstehen.
|
AW: Passwörter generieren (Besondere)
Somit ist die Funktion aber nicht sonderlich universell einsetzbar, da man sehr viele Bedingungen einhalten muss. Man darf keine Serien von Passwörtern erstellen, man muss sicherstellen, dass man nicht erraten kann, wann das Passwort erstellt wurde, usw.
Alles Dinge, die es anfällig machen. Aber gut, wenn man damit leben kann ist's ja ok. Man sollte sich dessen aber bewusst sein. |
AW: Passwörter generieren (Besondere)
Zitat:
|
AW: Passwörter generieren (Besondere)
Zitat:
|
AW: Passwörter generieren (Besondere)
Zitat:
H2H |
AW: Passwörter generieren (Besondere)
Zitat:
Allerdings hat man nicht nur in dem beschriebene Scenario Probleme, wenn der Algorithmus bekannt ist (das sollte bei Kryptoanwendungen der Fall sein, die Sicherheit kommt aus Schlüssel, Salz etc) Beispiel 1: Du verschlüsselst Dateien. Aus der Zeitstempel der Datei erhaltst das ungefähre Randseed. Bespiel 2: Dein Passwort kann auf keinen Fall mehr als 32-Bit "Zufall" haben, anders heraum Du kannst maximal 2^32 Passwörter erzeugen. Das ist lächerlich gering und mit Bruteforce relativ einfach zu knacken. |
AW: Passwörter generieren (Besondere)
@ToFaceTeKilla:
Ein Stichwort: CSPRNG :wink: Zitat:
|
AW: Passwörter generieren (Besondere)
Zitat:
|
AW: Passwörter generieren (Besondere)
Zitat:
Aber man muss ja nicht gleich mit Kanonen auf Anfänger Spatzen schießen. |
AW: Passwörter generieren (Besondere)
@gammatester:
Nein schon klar, ich meinte, dass es keinen Schlüssel im Sinne von "kryptographischen Schlüssel" hat. Ungünstig ausgedrückt, sry. @ToFaceTeKilla: Na ok *gg* |
AW: Passwörter generieren (Besondere)
Sorry aber der Quellcode funktioniert nicht, so wie er da steht, ParameterFehler
|
AW: Passwörter generieren (Besondere)
Zitat:
Der Zeichenvorrat muss als String und nicht als Menge übergeben werden:
Delphi-Quellcode:
neuesPasswort := RandomString(6, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789');
|
AW: Passwörter generieren (Besondere)
Danke, ist erstmal GELÖST!
Kann man das irgenwo einstellen? |
AW: Passwörter generieren (Besondere)
Wie einstellen? Wo einstellen? :gruebel:
|
AW: Passwörter generieren (Besondere)
Zitat:
Die Function RandomString hat einen entscheidenden Fehler: es wird nicht verhindert, dass ein Zeichen mehrfach auftritt. Das verringert die Sicherheit gewaltig. |
AW: Passwörter generieren (Besondere)
Hallo,
gehört zwar nicht ganz zum Thema, wie speichert Ihr Eure Passwörter? Bis bald Chemiker |
AW: Passwörter generieren (Besondere)
Zitat:
|
AW: Passwörter generieren (Besondere)
Und um die Sicherheit noch zu erhöhen (und vor allem denjenigen den Wind aus den Segeln zu nehmen, die meinen zu wissen, wann du dein PW generiert hast): Klatsche noch einen relativ schnell tickenden Timer aufs Form und nimm immer wieder eine Zufallszahl. So veränderst du jedes Mal den RandSeed und es ist somit nicht mehr ganz eindeutig, von welchem RandSeed du dein PW gebaut hast. Außerdem hängen dann nicht 2 PWs direkt hintereinander, da du zwischen dem ersten und dem 2. Passwort > 1 Durchlauf des Timers hast. Dein 2. Passwort wird also weniger abhängig vom ersten Passwort.
TrueCrype (welches OpenSource ist) geht einen ähnlichen Weg. Um einen möglichst zufälligen Schlüssel zu erhalten soll man möglichst lange zufällig mit der Maus auf dem Form Bewegungen machen. Je länger, desto besser, weil man dann nicht aus dem Zeitstempel auf den RandSeed schließen kann. Bernhard |
AW: Passwörter generieren (Besondere)
Zitat:
Ob das, wenn ein Zeichen nur einmal vorkommt, zu Sicherheit beiträgt wurde in einem anderen Thread schon einmal recht ausführlich diskutiert. Grüße Klaus |
AW: Passwörter generieren (Besondere)
|
AW: Passwörter generieren (Besondere)
Zitat:
Zitat:
Da das (wahrscheinlich) ein CPRNG ist, kann man selbst wenn man einen bestimmten Zustand kennt, NICHT den nächsten oder vorherigen Zustand bestimmen, ganz im Gegensatz zu Delphi, wo man beliebig Vor- und Zurückrechnen kann: x(n+1) = a*x(n) + b mod 2^32 bzw x(n-1) = (x(n)-b) * (1/a) mod 2^32. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz