Sind Passwörtern mit Umlauten und Sonderzeichen wirklich sicherer?

Es heißt ja oft, dass man bei Passwörtern auch Umlaute und Sonderzeichen wie z. B. , ; . : * - + # ! ? % ) ( } { @ usw. verwenden soll.

Jetzt meinte gerade ein Bekannter zu mir, dass alle Zeichen, auch Umlaute und Sonderzeichen, in Computern als Binärcode (Ziffernfolge von „1“ und „0“ z. B. „001101001101“) vorhanden sind. Ein Rechenprogramm, welches versucht, Passwörter durch Probieren von zufälligen Zeichenfolgen zu knacken, würde nur verschiedene Folgen von Binärcodes ausprobieren, bis durch Zufall das Passwort richtig ist. Darum wäre ein Passwort mit vielen Umlauten und Sonderzeichen nicht sicherer. Es wäre laut meinem Bekannten viel wichtiger, dass das Passwort lang ist, weil dann die Rechenzeit viel größer wäre, bis das Passwort durch Probieren geknackt ist.

Und wenn jemand z. B. Thomas Müller heißt und z. B. „th0mA$mü11er“ oder „tH0M4$mü11€R“ als Passwort verwendet, dann wäre das für Hacker sehr viel leichter zu erraten als wenn er z. B. „4rsQ97wqas13“ als Passwort verwendet, obwohl da kein Umlaut u. kein Sonderzeichen drin ist.

Trotzdem bin ich der Meinung, dass bei gleicher Länge ein Passwort mit Umlauten und Sonderzeichen sicherer ist, als ein Passwort das nur aus normalen Buchstaben u. Ziffern besteht. Denn es gibt ja im deutschen Alphabet nur je 26 kleine u. große Buchstaben und nur 10 Ziffern, die Anzahl der Kombinationsmöglichkeiten ist also viel kleiner, als wenn man noch Umlaute und Sonderzeichen mit in Passwörtern verwendet.

Solange man sich an die Regel hält, dass man NICHTS als Passwort nimmt:

- was im Duden steht oder

- den eigenen Namen, Geburtsdatum, die E-Mail-Adresse, Straße, Hausnummer, dem Namen von Familienmitgliedern etc. enthält oder ähnelt, oder

- einfach zu erratende Folgen wie „12345678...“, „qwertzuiopü+“ usw.

müsste es doch, wenn es mit Umlauten und Sonderzeichen sehr viel mehr Kombinationsmöglichkeiten gibt, bei gleicher Passwortlänge doch noch viel länger dauern, das Passwort zu knacken, oder?

Und wie lang sollte ein Passwort mindestens sein, damit es z. B. auch kein Geheimdienst mit Superrechnern knacken kann? 16 Zeichen oder besser 20 Zeichen oder sogar noch länger?

Computer, Sicherheit, Passwort, Sonderzeichen, Geheimdienst, Hacker, Umlaute, binärcode
C++: Sonderzeichen lösen Problem aus?

Hallo Leute,

ich habe ein Problem mit Sonderzeichen.

Sonderzeichen wären:

und Zeichen mit Akzent, z.B. ê.

Hier mein Code:

for (auto & p : fs::directory_iterator(VARIABLE)) {
  fs::path pn = p.path();

  if (is_regular_file(pn)) {
    std::string ps = pn.string();
    do_something(ps)
  }
  else {
    give_me_some_error();
  }

Führe ich den Code eingebaut und mit entsprechenden Parametern aus, funktioniert dieser sehr gut und gibt mir auch die richtigen Ergebnisse zurück.

Problem ist, wenn ein oder mehrere (auch andere) Sonderzeichen, wie oben genannt, kommen. Dann wirft er mir bei

std::string ps = pn.string();

einen Fehler (siehe Bild) aus.

Unter Details anzeigen kommt dann:

Unbehandelte Ausnahme bei 0x755135D2 in Test1.exe: Microsoft C++-Ausnahme: std::system_error bei Speicherort 0x0090EF3C.

-

und wenn ich auf Ausnahmeeinstellungen gehe, kommt, dass er von Kernelbase.dll ausgelöst wurde.

Nach langem Suchen via Google habe ich zum einen herausgefunden, ich solle doch statt path() die u8path() nehmen. Das wirft mir jedoch einen Fehler aus (außer ich habe es falsch gemacht, ich bin neu in C++).

Und ich soll in den Einstellungen das Charset auf Unicode umstellen.

Das hat aber alles nichts gebracht.

Infos:

  • Ich nutze die neueste Version von Visual Studio 2019 (heute; 16.12 aktualisiert).
  • Ich habe schon gegoogelt, das hat jedoch nichts gebracht.
  • Die oben gezeigte for-Schleife ist in einer Funktion drinnen, wo die benötigten Parameter übergeben werden.
  • Das Programm funktioniert, solange kein Sonderzeichen kommt.

Ich hoffe, jemand von euch kann mir helfen. Ich bin echt am Verzweifeln.

Weitere Anmerkungen:

Ich habe gerade gesehen, dass mir, wenn ich über den String gehe, zusätzlich noch ausgegeben wird: "Fehler beim Lesen der Zeichenfolge". Ich weiß nicht ob das weiterhilft.

Bild zum Beitrag
Computer, Fehler, programmieren, Sonderzeichen, CPP, Visual Studio, UTF-8
Verzweiflung mit Sonderzeichen auf Server?

Hallo liebe Community ...

Ich bin am Verzweifeln! Ich schreibe im Moment an einem Server-Client-Konstrukt, wo der Java Client eine POST-Request an einen online Server sendet, der die Anfrage dann per PHP und MySQL verarbeitet. In diesem Fall soll einfach nur vom Client eine Textnachricht per POST an ein PHP-Script gesendet werden, das wird dann in PHP per $_POST['Nachricht'] ausgelesen und dann in einer MySQL-Datenbank gespeichert. Und in einer anderen Anfrage wird die Nachricht aus der Tabelle wieder ausgelesen und zurückgeschickt.

Nun arbeite ich aber mit Umlauten und vlt später auch mit anderen Sonderzeichen. Ich habe es zuvor auf meinem localhost versucht und das hat wunderbar geklappt. Wenn ich das allerdings versuche das auf meinem online Server wieder auszulesen (über eine andere POST-Request) kommt sowas bei raus:

In der Datenbankansicht per PHPMyAdmin sieht das ebenfalls so aus. Wie kann ich die Umlaute auf meinem Client richtig anzeigen lassen? Ich bin verwirrt und brauche Hilfe ;-;

Zur Info:

  • Die Texte codiere ich vor dem Senden per POST mit URLEncoder.encode(text, "UTF-8")
  • im Serververzeichnis habe ich über eine ".user.ini" das default_charset auf UTF-8 gesetzt (Mastervalue ist iso-8859-1)
  • (auf meinem localhost ist beides auf UTF-8 gesetzt)
  • die Kollation meiner Server-Datenbanken habe ich glaube irgendwann mal von iso-8859-1auf utf8_general_ci umgestellt
  • als Header im php-Script habe ich noch: header('Content-Type: text/html; charset=utf-8');

Ich komme da echt durcheinander :( kann mir jemand helfen?

Vielen Dank im Voraus

Bild zum Beitrag
Server, Computer, Technik, Java, Sonderzeichen, Datenbank, PHP, Technologie, UTF-8

Meistgelesene Beiträge zum Thema Sonderzeichen