Zufallsauswahl aus String

Mitglied: Hatschi1

Hatschi1 (Level 1) - Jetzt verbinden

04.04.2021 um 19:15 Uhr, 478 Aufrufe, 3 Kommentare

Hallo und frohe Ostern,

ich habe folgendes Problem:

Ich möchte gerne aus einem String fünf zufällige Buchstaben o. Zahlen. o. Sondernzeichen in
die Textbox1 einfügen. Dafür benutze ich den u.a. Code der auch super funktioniert. Wie kann ich verhindern, dass in Textbox1
per Zufall der gleiche Inhalt mehrfach eingetragen wird, bspw. "abc11" oder "22d1@"?
Es sollen keine Zahlen oder Buchstaben oder Sonderzeichen in Textbox1 doppelt vorkommen.


LG
Claudia
Mitglied: maretz
04.04.2021 um 20:58 Uhr
Ich würde sowas (allerdings in Java) über nen Array machen bei dem ich eben immer wenn ich einen Wert genommen habe den aus dem Array lösche. ABER am Ende würde ich es vermutlich gar nicht machen weil ich damit ja sicherheitsmässig nur nen Schritt rückwärts machen würde.

Hast du 5 Zeichen und jedes kann nur EINMAL vorkommen ist die Möglichkeit das zu erraten ja bereits DEUTLICH höher (bzw. bei Brute-force auch deutlich schneller) als wenn du 5 Zeichen OHNE Einschränkung hast. Klar kann das Wort dann eben auch wirklich aaaaa lauten ABER man kann eben nie wissen ob sich Zeichen verdoppeln oder nicht.

Es kommt also drauf an was du vorhast - mir fällt erst mal aber kein Zweck ein wo es vorteilhaft ist solche Einschränkungen zu machen.
Bitte warten ..
Mitglied: schleeke
04.04.2021, aktualisiert 05.04.2021
Moin,

wie @maretz schon geschrieben hat, muss das bereits verwendete Zeichen aus dem Array verschwinden. Der Code (C#) könnte z.B. so aussehen:
... 'n bisschen "over-the-top" für die Aufgabe, aber dafür generisch und das Prinzip wird trotzdem deutlich ;)
Ich hab' 'nen StringBuilder und eine List of char verwendet, um das Hin- und Her-Kopieren im Speicher zu minimieren.
Der Aufruf für Deinen konkreten Fall sähe dann so aus:
Ab Zeile 13 wird die Rückgabe generiert, indem die Schleife bis zur gewünschten Länge des strings durchlaufen wird.
Zeile 14 wählt das zufällige Zeichen aus und in Zeile 15 wird das verwendete Zeichen entfernt.

Viele Grüße
schleeke

P.S. Als Geheimnis/Passwort ist der Algorithmus denkbar ungeeignet (s. @maretz).
Bitte warten ..
Mitglied: mayho33
05.04.2021, aktualisiert um 12:42 Uhr
Wenn du die Ausgabe vorher in ein Array zwischenspeicherst kannst du das Ergebnis vorher prüfen und noch mal das RAND laufen lassen lassen für das doppelte Zeichen.

Wie die Kollegen oben schon schreiben ist es halt müßig im Speicher eine solche Berechnung zu machen. Kann leicht abgefangen werden.
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Realistische Gehaltsvorstellung für eine "IT-Allroundkraft"
gelöst JiggyLeeVor 18 StundenFrageOff Topic17 Kommentare

Hallo an alle, ich hege momentan den Wunsch mich von der alten verstaubten Behörden Bürokratie und langweiliger Aufgaben los zu lösen und in einem ...

Windows 10
Windows 10 Geschwindigkeitprobleme trotz viel mehr Gb Ram
Matthes88Vor 23 StundenFrageWindows 1036 Kommentare

Hallo ihr lieben aaaalso : Da mein neuer Arbeitsspeicher (32gb) von meiner alten Windows 7 version (max mit 8gb kompatibel) nicht angenommen wurde, habe ...

Humor (lol)
Tipp: Dinge, die man besser nicht klaut
altmetallerVor 19 StundenTippHumor (lol)9 Kommentare

Hallo, so wurde meiner Hündin z.B. heute der (eingeschaltete) GPS-Tracker mit Mobilfunkanbindung quasi "direkt vom Halsband weggefunden". Akku hatte noch 60% :-P Und ich ...

Switche und Hubs
Suche Deutsche Sprachdatei für D-Link DGS-1210-24 D1 Switch
gelöst Oggy01Vor 1 TagFrageSwitche und Hubs8 Kommentare

Hallo, ich habe einen D-Link DGS-1210-24 Vers. D1 Switch bekommen und suche für diesen eine Deutsche Sprachdatei. Die Firmware ist auf dem aktuellen Stand ...

Windows Server
GPU Passthrough HYPER-V 2019
bintesVor 1 TagFrageWindows Server8 Kommentare

Hallo, ich habe ein ein Problem mit der Bereitstellung einer Grafikkarte an eine virtuelle Maschine. Hardware: - HPE ProLiant DL380 Gen9 V4 Rack Server ...

Video & Streaming
Videoaufnahme funktioniert nur bis zum ersten Reboot (0x80040217)
IllusionFACTORYVor 1 TagFrageVideo & Streaming11 Kommentare

Ich nehme über eine Video-Software von einem USB-Hardware-Encoder Video auf. Das funktioniert exakt bis zum ersten Reboot - danach bekomme ich beim Starten der ...

Windows Server
Windows Admin Center DC
maximidVor 1 TagFrageWindows Server3 Kommentare

Hallo, ich hätte mal eine Frage zu Windows Admin Center und zwar schaue ich es mir aktuell etwas an da mir die zentrale Verwaltung ...

SAN, NAS, DAS
Synology DS213j - Volume nach HDD Austausch vergrößern
gelöst JasperBeardleyVor 1 TagFrageSAN, NAS, DAS4 Kommentare

Moin, ich hab meinem NAS zwei neue 8TB spendiert, da die 3TB Platten jetzt 6 Jahre alt sind. Da die beiden Platten im JBOD ...