Ich habe eine schnelle Konsolen-App geschrieben, um schnell Benutzernamen und Logins für meine Web-Anwendung für bestehende Konten zu generieren, die Passwörter nicht ordnungsgemäß hashed haben. In meiner Web-Anwendung verwende ich FormsAuthentication wie so:Was gibt mir das gleiche Ergebnis wie FormsAuthentication Hashing für eine Nicht-Webanwendung?
string hashedPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPassword, "SHA1");
Ich versuchte FormsAuthentication in der Konsolenanwendung zu verwenden, aber es kann die FormsAuthentication noch die Importe nicht lösen. Die Warnung, die ich bekomme, fragt, ob ich eine Versammlung vermisse. Ich habe versucht, die folgenden zu verwenden, um mir die gleichen Ergebnisse wie die vorherige zu geben:
SHA1 sha1 = new SHA1CryptoServiceProvider();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] bytesHashedPwd = sha1.ComputeHash(encoding.GetBytes(saltAndPwd));
string tmpString = encoding.GetString(byteshashedPwd);
string hashedPwd = String.Concat(str, salt);
return hashedPwd;
Diese beiden Methoden geben mir zu unterschiedlichen Ergebnissen. Ich muss das gleiche Ergebnis wie FormsAuthentication erhalten. Ich bin kein Sicherheitsexperte mit einem kleinen Vauge-Hintergrund und mein Charakterwissen ist noch schlimmer. Ich schätze jede Hilfe.
Ich musste ConvertToBase64String hinzufügen. – uriDium