ASP.NET Membership C # - So vergleichen Sie ein vorhandenes Passwort / Hash

Ich bin schon eine Weile mit diesem Problem beschäftigt. Ich muss ein Kennwort, das der Benutzer eingibt, mit einem Kennwort vergleichen, das sich in der Mitgliedschafts-DB befindet. Das Passwort ist gehasht und hat ein Salz. Aufgrund der fehlenden Dokumentation weiß ich nicht, ob das Salt an das Passwort angehängt wird und dann gehasht wird, wie es erstellt wird.

Ich kann keine Übereinstimmung erzielen. Der von der Funktion zurückgegebene Hash stimmt nie mit dem Hash in der DB überein, und ich weiß, dass es sich um dasselbe Passwort handelt. Microsoft scheint das Passwort anders zu hacken als ich.

Ich hoffe, jemand hat einige Einblicke bitte.

Hier ist mein Code:

 protected void Button1_Click(object sender, EventArgs e)
    {   
        //HERE IS THE PASSWORD I USE, SAME ONE IS HASHED IN THE DB
        string pwd = "Letmein44";
       //HERE IS THE SALT FROM THE DB
        string saltVar = "SuY4cf8wJXJAVEr3xjz4Dg==";
        //HERE IS THE PASSWORD THE WAY IT STORED IN THE DB AS HASH
        string bdPwd = "mPrDArrWt1+tybrjA0OZuEG1P5w=";
    // FOR COMPARISON I DISPLAY IT
        TextBox1.Text = bdPwd;
        // HERE IS WHERE I DISPLAY THE return from THE FUNCTION, IT SHOULD MATCH THE PASSWORD FROM THE DB.
        TextBox2.Text = getHashedPassUsingUserIdAsSalt(pwd, saltVar);

    }
private string getHashedPassUsingUserIdAsSalt(string vPass, string vSalt)
    {
        string vSourceText = vPass + vSalt;          
        System.Text.UnicodeEncoding vUe = new System.Text.UnicodeEncoding();
        byte[] vSourceBytes = vUe.GetBytes(vSourceText);            
        System.Security.Cryptography.SHA1CryptoServiceProvider vSHA = new System.Security.Cryptography.SHA1CryptoServiceProvider();
        byte[] vHashBytes = vSHA.ComputeHash(vSourceBytes);            
        return Convert.ToBase64String(vHashBytes);
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage