Add password encryption on Mysqli Record insert
I am using the Mysqli Record insert and I have a password field that I need to encrypt so that the password is not viewable in the database but shows as a token. Is this possible?
I am using the Mysqli Record insert and I have a password field that I need to encrypt so that the password is not viewable in the database but shows as a token. Is this possible?
Yes, you can use an encryption function when storing the value and when doing the comparison on login. Just find an encryption function you would like to use and call it in the server behavior when binding the values.
Is there a way you can give an example of how to incorporate the encryption function?
What type of encryption do you want to use? Do you have a particular encryption function in mind?
I was wanting to use password_hash.
All you would need to do it wrap the binding value in the insert server behavior with the encryption function you want to use.
So instead of:
<?php echo(isset($_POST['Password'])?$_POST['Password']:""); ?>
You would use:
<?php echo(isset($_POST['Password'])?password_hash($_POST['Password']):""); ?>
Hallo!
Seit 2 Tagen habe ich nun die „MySQLi Server Behaviors“ (Version 1.0.8)!
Dreamweaver Version CC 2021 + PHP 7.4
Mit MySQLi Login User wollte ich nun eine Benutzeranmeldung mit Benutzer + Passwort durchführen. Das Passwort sollte dabei mit einer Verschlüsselung (password_hash) erfolgen. Leider bisher ohne Erfolg.
Auszug aus der Login Seite:
08) $Authenticate->Action = "authenticate";
09) $Authenticate->Trigger = ($_SERVER["REQUEST_METHOD"] === "POST");
10) $Authenticate->Name = "UserLogin";
11) $Authenticate->Table = "tblbenutzer";
12) $Authenticate->addFilter("Benutzer", "=", "s", "".((isset($_POST["benutzer"]))?$_POST["benutzer"]:"") ."");
13) $Authenticate->addFilter("Kennwort", "=", "s", "".(isset($_POST['Password'])?password_hash($_POST['Password']):"") ."");
14) $Authenticate->storeResult("vName", "Vorname");
15) $Authenticate->storeResult("nName", "Nachname");
16) $Authenticate->RememberMe = (false);
17) $Authenticate->SaveLogin = (false);
18) $Authenticate->AutoReturn = false;
19) $SuccessRedirect = "login/login.php";
20) $FailedRedirect = "fehler/fehler.php";
21) if (function_exists("rel2abs")) $SuccessRedirect = $SuccessRedirect?rel2abs($SuccessRedirect,dirname(__FILE__)):"";
22) if (function_exists("rel2abs")) $FailedRedirect = $FailedRedirect?rel2abs($FailedRedirect,dirname(__FILE__)):"";
23) $Authenticate->SuccessRedirect = $SuccessRedirect;
24) $Authenticate->FailRedirect = $FailedRedirect;
25) $Authenticate->execute();
Geändert hatte ich dabei die Zeile 13 entsprechend der folgenden Angabe:
<?php echo (isset($_POST['Password'])?password_hash($_POST['Password']):""); ?>
Die Änderung hatte ich unter der Registerkarte „Find Record“ von „MySQLi Login User“ eingetragen.
Wenn jetzt in der Tabelle in der Spalte „Kennwort“ das von „password_hash“ erzeugte Passwort steht, ist eine Anmeldung nicht erfolgreich, und es kommt die Fehlerseite laut Zeile 20!
Wenn ich in der Spalte das Kennwort Feld leer lasse - also kein Passwort eintrage - erfolgt die richtige Weiterleitung zur Login Seite, laut Zeile 19!
Was muss hier wo geändert werden, damit das richtig funktioniert!
This line should be updated:
13) $Authenticate->addFilter("Kennwort", "=", "s", "".(isset($_POST['Password'])?password_hash($_POST['Password']):"") ."");
to:
13) $Authenticate->addHash("Kennwort", "".(isset($_POST['Password'])?password_hash($_POST['Password']):"") ."");
Leider ohne Erfolg:
08) $Authenticate->Action = "authenticate";
09) $Authenticate->Trigger = ($_SERVER["REQUEST_METHOD"] === "POST");
10) $Authenticate->Name = "UserLogin";
11) $Authenticate->Table = "tblbenutzer";
12) $Authenticate->addFilter("Benutzer", "=", "s", "".((isset($_POST["benutzer"]))?$_POST["benutzer"]:"") ."");
13) $Authenticate->addHash("Kennwort", "".(isset($_POST['Password'])?password_hash($_POST['Password']):"") ."");
14) $Authenticate->storeResult("vName", "Vorname");
15) $Authenticate->storeResult("nName", "Nachname");
16) $Authenticate->RememberMe = (false);
17) $Authenticate->SaveLogin = (false);
18) $Authenticate->AutoReturn = false;
19) $SuccessRedirect = "login/login.php";
20) $FailedRedirect = "fehler/fehler.php";
21) if (function_exists("rel2abs")) $SuccessRedirect = $SuccessRedirect?rel2abs($SuccessRedirect,dirname(__FILE__)):"";
22) f (function_exists("rel2abs")) $FailedRedirect = $FailedRedirect?rel2abs($FailedRedirect,dirname(__FILE__)):"";
23) $Authenticate->SuccessRedirect = $SuccessRedirect;
24) $Authenticate->FailRedirect = $FailedRedirect;
25) $Authenticate->execute();
Jetzt ist keine Anmeldung mehr möglich, egal ob ohne Passwort oder mit verschlüsseltem Passwort, es kommt nur noch die Fehlerseite (laut Zeile 20)
Das Bearbeitungsfenster Fenster "MySQLi Login User" erscheint jetzt auch nicht mehr. Die Bearbeitung ist nur noch im Quellcode direkt möglich!
Try just:
13) $Authenticate->addHash("Kennwort", "".(isset($_POST['Password'])?$_POST['Password']:"") ."");
Unfortunately Hashed passwords is only available with hand coding. Once added, you would have to manage the code by hand.
Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.
These out-of-the-box solutions provide you proven, tested applications that can be up and running now. Build a store, a gallery, or a web-based email solution.