Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich meinte es so, dass es abzuwegen wäre ob der Aufwand der Implementation eines Algorithmuses welcher nicht im .NET Framework enthalten ist den Zugewinn an Sicherheit wert ist, SHA2 ist z.B. standardmäßig im .NET Framework enthalten mann muss diesen nicht erst in C# portieren oder implementieren.
/edit: Whirlpool müsste man z.B. erst portieren oder implementieren...
mit Sicherheit gibt es schon eine Implementation von Whirlpool in C#, nur kommt dann die Frage nach Lizenz, Kosten usw. auf... von daher ist es am besten wenn man mit Bordmitteln von .NET arbeiten kann.
Ich finde den Code nicht so schlimm, wenn man bedenkt dass dadurch ein recht komplexer Hash-Algorithmus implementiert wird.
Wenn man weiß wie der Algorithmus funktioniert (anhand der offiziellen Spezifikation) und die recht verständlichen Kommentare im Code liest, sollte man eigentlich verstehen was abläuft. Ein paar "Bit-Jonglierkenntnisse" mal vorausgesetzt.
Ich hatte mich vielleicht falsch ausgedrückt. Ich meinte die AES Verschlüsselung des Datenstroms, nicht des Passwortes. Dazu schreib ich ja selbst, dass man da die Hashes vergleichen sollte. Die könnte man durch einen USB Dongle erreichen, damit der Key auf beiden Seiten bekannt ist. Ich weiß ja nicht welche Brisanz die Daten besitzen oder wie zukunftssicher und komplett die Software werden soll.
Und wenn jemand Zugriff auf den Server hat, ist es schon zu spät. Das hat auch niemand bestritten, allerdings auch nicht erwähnt. Von 100% Sicherheit hat auch niemand gesprochen, also sollte es da auch keinen Kontrapunkt zu geben lieber haze4real
Also alles gut oder? Lassen wir das.
Der Rest wurde schon gesagt. Nimm die .NET Funktionen außer MD5 und SHA1 und vergleiche die salted hashes miteinander.
Hmm wie kann man den Datenstrom verschlüsseln wenn der SQL Server das nicht entschlüsseln kann. Das macht irgendwie kein Sinn.
Du kannst eine Schnittstelle bauen als eigenes Programm das immer auf dem Server läuft und auf Dateninput wartet. Alles andere ist nicht realisierbar! Du hast ja keinen kompletten Zugriff auf die Bibliotheken, um die Anpassung des Datenstroms.
Wenn du es ohne Serverdienst realisieren möchtest, gebe ich dir Recht. Der direkte Zugriff auf den SQL Server muss dann allerdings gegeben sein.
Das Thema ist dahingehend ja nicht genau spezifiziert. Die Daten sollen zwar auf einem (MS?) SQL Server abgelegt werden, aber wie das geschehen soll, konnte ich bisher nicht erkennen.
Hmm WebServices benutzen? Hierbei kannst du dein Datenstrom zum server verschlüsseln. Es macht aber weniger sinn wenn du die WebServices nur im Lokalen Netzwerk nutzen will. Naja hängt vom Netzwerk ab, ist aber trotzdem nicht wirklich sinnvoll.