Mit welcher Programmiersprache Web-Oberfläche für Datenbank programmieren?

Hallo zusammen,

könnt ihr mir kurz eure Empfehlungen und Erfahrungen geben bzgl Programmiersprachen?
Folgendes möchte ich tun bzw den Aufwand abschätzen:
Und zwar möchte ich eine Web-Oberfläche für einen Postgresql Server entwickeln. Wir haben zwar schon eine Oberflächliche jedoch funktioniert die Zusammenarbeit mit der Firma, die die Oberfläche entwickelt nicht so gut, weshalb ich gerne versuchen möchte etwas eigenes zu bauen.

Erfahrungen hab ich bisher eher im Bereich von Client-Seitiger Software (zb VBA, SPS, C) aber wenig was Server bzw Websites angeht.

Ansatz bisher ist HTML und PHP. Jedoch liest man viel, dass Python besser als PHP sei. Wenn es so wäre würde sich Python anbieten weil ich mich eh wegen einem anderen Thema da einarbeiten müsste. Mich würde hier Python aber nur für die Oberfläche interessieren weil der Server ja schon vorhanden ist und ich nur die Daten visualisieren will.

Wenn es aber um eine Oberfläche zur Darstellung und Eingabe von Daten in eine Datenbank geht, welche Sprache würdet ihr empfehlen?
PHP soll wohl den leichteren Einstieg bieten und ich könnte schnell Ergebnisse sehen.

Mir geht es nicht darum was besser/schlechter ist. Ich möchte nur verstehen warum andere lieber mit Python arbeiten und welche Vorteile es gegenüber php und umgekehrt hat.

Erfahrungen in andere Richtung sind natürlich auch willkommen.

Danke schon mal.

Server, Computer, SQL, HTML, Webseite, PHP, Python
C# User Login: Passwort-Hash vergleichen?

Hallo,

ich programmiere eine Anwendung, in der man Adressen mit SQL-Server verwalten kann. Man kann Benutzer anlegen und sich mit denen beim Start der Anwendung einloggen.

Nun möchte ich das Passwort hashen. Beim Erstellen des Benutzers wird bereits ein Hashwert generiert und in der Passwort-Spalte in der Datenbank angezeigt. Beim Einloggen soll auch das Passwort gehasht werden und dann der Hash vom Einloggen mit dem aus der Datenbank auf Übereinstimmung verglichen werden.

Ich habe mich an folgendem Tutorial orientiert: https://dotnetcodr.com/2017/10/26/how-to-hash-passwords-with-a-salt-in-net-2/

Ich generiere also immer einen zufälligen Hashwert und das auch beim Einloggen. Wenn ich dann also den Hash vom Einloggen mit dem aus der Datenbank pvergleiche, können die nie übereinstimmen, weil eben bei beiden immer ein zufälliger Wert generiert wird.

Hash (beim Erstellen des Benutzers):

public HashWithSaltResult HashWithGenericSalt(string password, int saltLength, HashAlgorithm hashAlgo)
{
    RNG rng = new RNG();
    byte[] saltBytes = rng.GenerateRandomCryptographicBytes(saltLength);
    byte[] passwordAsBytes = Encoding.UTF8.GetBytes(password);
	List<byte> passwordWithSaltBytes = new List<byte>();

    passwordWithSaltBytes.AddRange(saltBytes);
    passwordWithSaltBytes.AddRange(passwordAsBytes);
    byte[] digestBytes = hashAlgo.ComputeHash(passwordWithSaltBytes.ToArray());

    return new HashWithSaltResult(Convert.ToBase64String(saltBytes), Convert.ToBase64String(digestBytes));
}

Hash (beim Einloggen):

public HashWithSaltResult HashWithSalt(string password, string salt, HashAlgorithm hashAlgo)
{
	// Wie hashe ich beim einloggen?
}

Einloggen:

using (var context = new PersonDbContext())
{
	var query = from p in context.Benutzers where textBoxVorname.Text == p.Vorname && textBoxName.Text == p.Name && HashResultSha512.Digest == p.PasswortDigest select p;
    HashPassword();
}

public void HashPassword()
{
    PasswordWithSaltHasher pwHasher = new PasswordWithSaltHasher();
    HashResultSha512 = pwHasher.HashWithSalt();

    db.CheckBenutzerLogin(textBoxVorname.Text, textBoxPasswort.Text, HashResultSha512.Salt, HashResultSha512.Digest);
}

Was muss ich in

public HashWithSaltResult HashWithSalt

schreiben, damit er den Hashwert aus der Datenbank verwendet und nicht wieder einen neuen Wert generiert?

SQL, programmieren, Passwort, Login, C Sharp, SQL-Server, Visual Studio

Meistgelesene Beiträge zum Thema SQL