Pi mit PhP

Nunja, PHP sendet eine Anfrage an die Datenbank, das lässt sich mit einigen Tools (bspw. Wireshark) mitschneiden und du hast ganz ohne Aufwand den Key, in Sekundenschnelle.

Du kannst das ganze ja mal mit Fiddler und deinem HTTP(S) Traffic testen.
 
Da kannst du auch einfach ein sehr langes Passwort generieren, ins Skript schreiben und einen beschränkten Nutzer für die Applikation anlegen.

Wenn du davon ausgehst, dass ein Hacker sich Zugriff auf das Skript/Applikation verschaffen kann, um das Passwort auszulesen, dann kann er auch regelmäßig generierte Passwörter auslesen.

Und bislang ging es nur um Authentifizierung, also Nachweisen, dass man der ist, der man ist. Nicht um Vertraulichkeit, was das Verhindern von MitM-Attacken beinhaltet. Dafür brauchst du SSL-Zertifikate etc.
 
Zuletzt bearbeitet:
Seinen vorletzten Post lese ich so, dass er da seine PHP Dateien an andere (nicht vertrauenswürdige) Personen verteilen will, die dann alle auf eine Datenbank zugreifen sollen.
 
Dann gilt ja das Gleiche: Ich nehme das Skript, baue ein echo('24h-Passwort') ein und kann damit anstellen, was ich will. Dann kann er auch wieder pro User ein festes Passwort nehmen.
Das Skript muss _immer_ alles mitbringen, um zur Datenbank zu verbinden. (Außer der User hat zusätzlich noch ein Passwort im Kopf, das er in sein Skript eingeben muss.) Und wenn das Skript in falsche Hände gerät: Mist

Also: Never trust the client! Wenn er das Skript verteilen will, muss er noch ein lokales Skript schreiben, dass die Anfragen wieder filtert und verarbeitet, bevor sie an die Datenbank weitergereicht werden.
 
Nun nein, so ist es nicht von mir gemeint gewesen. Eher so:
Ich habe einen WebServer mit einer Datenbank. Auf dem Webserver liegt ein Script was z.bsp Werte aus einer Datenbank wiedergibt wenn sie jemand abfragt. Z.Bsp einen Artikelpreis etc
Nun meldet sich das Script ja immer per Passwort und Benutzer an der Datenbank an. Und genau dieses Passwort will ich nicht immer in Datenbank und jedem Script von Hand alle x Zeit ändern, sondern es soll von selbst sich anpassen.
Keines der Scripte sendet irgendetwas an den Client der sich gerade die Webseite ansieht, bis auf die Werte die angezeigt werden sollen. Ist ja php
 
Btw: Wie lange ist eigentlich die max. Scriptlaufzeit bei deinem Webanbieter? :evillol:

Der wird sich sicher freuen wenn das Script "ein paar wenige hundert male" gestartet wird.....
 
Da wo es jetzt liegt 30 sekunden im kostenfreien und bis zu 3 Minuten im "Premium" Tarif. Bei mir später so lange wie ich es gern hätte. Sollte sich zum Schluss eher in Sekunden Bruchteilen bewegen, wer will schon länger als 2 Sekunden warten bis die Preise laden :D
 
Also doch lokal.

Zufällige Passwörter mit 64 Zeichen vergeben und die nächsten 20 Jahre nicht mehr dran denken.
Wenn der Server kompromitiert ist und jemand an das eine feste Passwort kommt, dann kommt er auch an die immer wieder neu generierten.
 
Ja das wäre die leichteste Methode :D
Ich würde trotzdem gerne wissen wie ich am besten bzw wie ich überhaupt Nachkommastellen von irrationalen Zahlen berechne so wie bei Pi. Da wird es doch sicher etwas geben was schnell mir viele Zahlen liefert.
Das wissen kann man sicher überall gebrauchen.
 
Bitte, bitte, bitte vergiss Pi.

Nimm die Funktion passwort_hash: http://php.net/manual/de/function.password-hash.php, wenn du unbedingt ein Passwort generieren willst.

Code:
<?php

$options = [
    'cost' => 12,
];

$neuespasswort = password_hash($Zeit, PASSWORD_BCRYPT, $options)."\n";
?>


Wenn du Pi berechnen willst, z.B. so:
https://coderwall.com/p/g35wya/calculating-pi-using-php

Ansonsten kannst du es in PHP kaum schneller machen. PHP ist eine Skriptsprache, wird nicht kompiliert, sondern läuft in einer Umgebung. Und selbst wenn man ein optimiertes und kompiliertes Programm schreibt, dauert das lange und ist CPU-intensiv.
Nicht umsonst wird Prime95 als Stabilitätstest für CPUs genutzt. Weil du mit dem berechnen von Pi ganz schnell viel Leistung verbrauchen kannst.
 
Zuletzt bearbeitet:
Password_hash hat einen entscheidenden Nachteil. Der Hash lässt sich nicht reproduzieren. Wie soll ich das dann als Passwort für irgendetwas nutzen, wenn ich es nicht erneut ausstellen kann.
Es geht hier immerhin um ein Datenbank Passwort und keinen Benutzer Password welches ich verifizieren kann. Habe ja kein Passwort da der Hash mein Passwort wäre.

Das Script hatte ich bereits gesehen. Bringt keine "richtigen" Ergebnisse. Zudem ist die Anzahl der Nachkommastellen nicht definierbar, was das ganze nicht sonderlich sinnvoll für den definierten Einsatz macht.
 
Zuletzt bearbeitet von einem Moderator:
Wenn du das gleiche Passwort eingibst, und die gleiche kryptographische Funktion mit gleichen Einstellungen (z.B. "cost") eingibst, dann kommt genau das gleiche Ergebnis raus. Das ist der Sinn von Hashfunktionen. Wenn die Eingabe genau identisch ist, ist auch das Ergebnis identisch. Aber kleinste Abweichungen führen zu stark veränderten Ergebnissen.
 
Nicht bei password_hash. Hierbei ändert sich der Hash um die eigene funktion zu verbergen.
Kannst ja mal mit "haus" und den zwei hashs versuchen. Diese sind nicht identisch von der Ziffernfolge und somit für mich ungeeignet obwohl sie den gleichen Sachverhalt beschreiben, da ich sie nicht als Hash sondern als Passwort weiter verwende. Zudem mir das in der MySQL User Tabelle sicher nicht viel bringt.
$2y$10$gJf7U6vxhSSWTIOG9My4pOQTfHbqSwU.VDpE5zv/N1kyO/eriI.S.

$2y$10$jAV.Xf9aVJnXoYnQ425iBuIVf7Cj/StgMamWJ7AqSU77ouchAWQ9G

Beide sind mit password_default generiert.
 
Mea culpa.

In den Options noch "salt" festlegen
Code:
    <?php
     
    $options = [
        'cost' => 12,
        'salt' => "IrgendEinFesterSalt",
    ];
     
    $neuespasswort = password_hash($Zeit, PASSWORD_BCRYPT, $options)."\n";
    ?>
 
Ah okay nun kommt etwas sinnvolles raus.
Wobei die Salt Option bereits als veraltet markiert ist ;)

Aber zurück zur Frage, wie geht das mit anderen irrationalen Zahlen. Für was auch immer man das brauchen kann. Wobei Näherungen an Werte etwas gefährlich sind, da ich ja gern exakte stellen ausrechnen will und nicht etwas was so ungefähr passt.
 
Es gibt Time-based one time passwords. Was hält dich davon ab, die Spezifikation umzusetzen?
 
Ist es nicht schneller pi einfach in einem file nachzuschlagen ? Lass dir die Stellen einmal ausrechnet und besorg dir dann Die gewünschte Länge x einfach aus dem file. Mit einer geeigneten (ich sag jetzt mal) pseudo-Struktur sollte der Zugriff doch relativ schnell funktionieren? Ansonsten stimmt es schon dass die vorgefertigten Funktionen sicherer sind 😂
 
Zurück
Oben