ich weiß, es ist möglich, Anmeldeinformationen des Benutzers von Windows (zB Domain) mit programmatisch zu validieren:Validieren Sie das Passwort eines Benutzers mit dem Hash?
LogonUser(username, password)
- from .NET ValidateCredentials(username, password)
- or the SSPI API directly
es eine Zeit gekommen ist, als ich diese bestehen bleiben wollen Anmeldeinformationen.
Ich benutze die Data Protection API (über die CredUI API), um das Passwort zu verschlüsseln. Dies bedeutet, dass die verschlüsselten Daten nur für den Benutzer selbst zugänglich sind. Mein Programm, das als Benutzer ausgeführt wird, kann dann die geschützten Daten entschlüsseln.
Aber es bedeutet auch, dass ein böswillige Programm ausgeführt wird, wie der Benutzer die geschützten Daten entschlüsseln kann; Stehlen der verschlüsselten Anmeldeinformationen des Benutzers.
ich weiß, dass Windows selbst password
des Benutzers nicht speichert. Was sie speichern, ist die gesalzene Version des Passworts. und bildet das "shared secret" zwischen dem Benutzer und Windows.
Gibt es eine API, mit der ich Windows fragen kann, ob das Passwort eines Benutzers gültig ist, wenn ich den gesalzenen Hash des Passworts kenne?
Dies ist nicht wirklich relevant für Ihre Frage, aber ich glaube nicht, dass Windows Salze Passwort Hashes. –