Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9.912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Beiträge von Klotzkopp

  1. Benutz nicht char* und char[], wenn du nicht genau weißt, was du tust. Dein Code hat da mehrere Probleme.

    Die Zeiger, die dir sqlite3_column_text liefert, sind nur bis zum nächsten Aufruf von sqlite3_step oder sqlite3_finalize gültig. Wenn du die Strings darüber hinaus speichern willst, musst du sie kopieren.

    Arrays kann man nicht mit = zuweisen. Das hast du vermutlich gemerkt, daher stammt wohl dieses Konstrukt:

    *Country::iso3166alpha2 = *iso3166alpha2;

    Damit kopierst du aber nur das erste Zeichen.

    Wenn du char*/char[] benutzt, musst du sicherstellen, dass deine Strings nullterminiert sind, und dass auch genügend Platz für eine Nullterminierung da ist. In iso3166alpha2 beispielsweise ist nur Platz für 1 Zeichen + Terminierung.

    Warum benutzt du nicht std::string?

  2. Auf diese Frage hin, hätt ich vermutet das das möglich ist.

    Es ist möglich, aber nicht so einfach, wie du dir das vielleicht vorstellst. Du kannst dich auch nicht mit Lenkrad und Stuhl auf die Straße setzen und hoffen, dass du ohne ein Auto ans Ziel kommst, wenn du nur etwas andere Lenkbewegungen machst.

    Der "natürliche Lebensraum" von PHP-Skripten ist eine ziemlich komplexe und komfortable Laufzeitumgebung aus dem Browser, der die GUI darstellt und die Eingabedaten liefert, und dem Webserver, der sich um die Ausführung kümmert. PHP-Skripte sind natürlich auf diese Laufzeitumgebung ausgelegt.

    Wenn du die Abhängigkeit von dieser Infrastruktur loswerden willst, muss sich dein Programm um alles, was vorher Browser und Webserver erledigt haben, selbst kümmern. Es gibt dann niemanden mehr, der für dich die GUI aus HTML rendert, und niemanden, der dir die Eingabedaten in einem handlichen $_POST liefert. Das geht nicht einfach so mit "umcodieren".

    Zudem musst du dafür sorgen, dass du entweder direkt ausführbare Dateien aus dem PHP-Code erstellst (mit einem Compiler), oder lokal ein PHP-Interpreter vorhanden ist, der deinen Code ausführt.

  3. Ein PW-Manager bzw. Safe ist nur so lange sicher, wie niemand außer der Besitzer den Zugang zum Safe bekommt.
    Was meinst du denn mit Zugang? Bei einem guten Passwortmanager ist weder Kenntnis des Algorithmus noch der Zugriff auf die verschlüsselten Daten ein Problem.

    Der Nachteil an einer umkehrbaren Verschlüsselung ist, das der Code "auslesbar" ist.
    Alle Verschlüsselungen sind umkehrbar. Du benutzt den Begriff "Verschlüsselung" falsch. In deinem Programm ist nirgendwo eine Verschlüsselung. Du verknüpfst mehrere Hash-Funktionen.

    Das ist quasi ein PW-Merker ohne das die PW´s irgendwo abgelegt werden.
    Und wo ist die zusätzliche Sicherheit? Statt den Dienst selbst mit Passwortlisten zu füttern, füttere ich eben dein Programm mit diesen Listen. Mit etwas Glück verwendet der Benutzer dasselbe Geheimnis für mehrere Dienste, dann gute Nacht.
  4. NDie HTML-Tags hab ich benutzt, damit das Script im Browser ordentlich dargestellt wird..
    Ohne Beteiligung eines Webservers ist es sinnlos, da einen Browser einzubeziehen.

    Ich kenn aber die Befehle für Eingabefeld und Submit-Button für eine andere Sprache nicht.
    Dann mach es eben erst einmal über die Konsole.

    Du meinst mit Eingabedaten aus Konsole/GUI bestimmt Print und Integer, oder versteh ich das falsch.
    Print ist Ausgabe. Konsoleneingabe bei PHP funktioniert über fscanf auf STDIN, soweit ich weiß.

    Hast du diesen bei dir ausprobiert?
    Nein, das kann man dem Code ansehen.

    Aus beiden Eingabefeldern wird der Wert jeweils in sha1 & md5 verschlüsselt =>Das Ergebnis wird in Crypt verschlüsselt => Die Ausgabe des Wertes erfolgt nach 9123 Durchgängen + ab der 15. Stelle.

    Wenn am Code nix geändert wird, ist bei jeder selben Eingabe der beiden Felder immer der gleiche verschlüsselte Wert.

    Was ist daran falsch?

    Eine wichtige Eigenschaft einer Verschlüsselung ist, dass man sie umkehren kann. Was du da machst, ist nicht umkehrbar.

    Auch SHA1 und MD5 sind keine Verschlüsselungen, aus genau demselben Grund: Weil du den Klartext nicht wiederherstellen kann.

    Ein Password-Manager, aus dem man die Passwörter nicht wieder herausholen kann, klingt für mich ziemlich kaputt.

  5. Mein Anliegen ist jetzt, das ich gern dieses php-Script umwandeln möchte, so das es nur noch über eine Webseite ohne Server gestartet werden kann. Ein ausführbares GUI (Programm-Oberfläche) wäre sogar noch besser.
    Weißt du denn, wie man PHP-Code lokal, ohne Webserver ausführt?

    Man müsste doch theoretisch nur paar wenige Codes umändern, oder täusch ich mich da...?
    Naja, das ganze HTML-Zeug muss natürlich weg, statt dessen musst du deine Eingabedaten aus der Konsole oder GUI lesen.

    Achso, falls es Unklarheiten gibt, wegen meinem Verschlüsselungsalgoritmus
    Mag sein, dass du das für korrekt und gewollt hältst. Aber das ist kein Verschlüsselungsalgorithmus.
  6. Meine Idee ist dabei, mit "if(!y)" zu erfragen, ob die methode einen zweiten Parameter hat.
    Ich habe doch beschrieben, wie man auf fehlende Parameter prüft. Mit Google findet man das auch ziemlich leicht.

    Ich denke ich habe irgendeinen syntaxfehler versteckt. Hoffentlich konnte ich es nun besser

    erklären.

    Wenn du eine Fehlermeldung bekommst, solltest du sie uns verraten.
  7. Ich bräuchte nur einen Einstiegspunkt um mich darüber zu informieren wie ich explizit Funktionen in dll's auslagere und in einem C Programm einbinde und verwende.

    Leider finde ich nur Infos für C++.

    Es gibt da keine nennenswerten Unterschiede.

    Irgendwelche Besonderheiten zu Klassen, Namensräumen und Überladung kannst du ignorieren, weil es so etwas in C nicht gibt.

  8. Mit %d weist du scanf an, einen vorzeichenbehafteten Zahlenwert in Dezimalschreibweise einzulesen. Dazu würde dann auch ein int*-Parameter gehören. Daher kann scanf mit dem eingegebenen Buchstaben nichts anfangen, lässt ihn im Eingabepuffer stehen und gibt 0 zurück (für 0 gefüllte Parameter).

    Den Rückgabewert von scanf prüfst du leider nicht.

    Beim nächsten Schleifendurchlauf steht der Buchstabe natürlich immer noch im Eingabepuffer. Scanf wartet also nicht auf eine Eingabe, sondern kommt wieder sofort mit 0 zurück -> Endlosschleife.

    Lösung: Siehe carstenj

    Beachte aber, dass dir scanf im nächsten Durchlauf einen Zeilenvorschub ('\n') liefern wird.

  9. Somit muss er eine Konvertierungsmethode implementieren um aus dem Text einen Binärsatz zu machen.
    Unsinn. Textdaten sind immer Binärdaten, umgekehrt nicht.

    Wenn jetzt das Argument kommt, dass diese Zeichenkombination immer vorkommen kann: Jede binäre Kombination könnte rein Theoretisch in einer Folge auftreten. Hier geht es doch lediglich darum die Warscheinlichkeit zu reduzieren (oder liege ich da falsch?)
    Wenn das Funktionieren des Protokolls auf Wahrscheinlichkeiten beruht, ist es kaputt. Es gibt erprobte Lösungen für dieses Problem, und ich habe sie genannt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...