what i am trying to do is when a user registers the password gets encrypted, and the encrypted password gets saved in a database, and when the user logs in it should then decrypt the password to compare if the user entered the correct password, but when i try to decrypt its gives me a "Bad data" exception.
Please help guys. Here is my code:
protected void btnLogin_Click(object sender, EventArgs e)
{
    try
    {
        private Cryptography crypt = new Cryptography();
        var registerUser = new test.Model.User();
        registerUser.EmailAddress = txtEmail.Text;
        registerUser.Password = txtPassword.Text;
        //new test().Getbyusername(registerUser);
        new test().getbyemail(registerUser, crypt);
    }
    catch (Exception ex)
    {
    }
}
public void getbyemail(User user, Cryptography crypt)
{
    try
    {
        var repo = new UserRepository();
        var test = repo.GetEncryptedPasswrd(user);
        var o = repo.getPrivateKey(user.EmailAddress);
        crypt.privateKey = o;
        var j = repo.getpublicKey(user.EmailAddress);
        crypt.publicKey = j;
        decryptPassword(test, o, crypt);
    }
    catch (Exception ex)
    {
    }
}
public String decryptPassword(byte [] encryptedpassword, string privateKey, Cryptography cry)
{
    decrypted = cry.decrypt(encryptedpassword, privateKey);
   //return Encoding.ASCII.GetString(decrypted);
    return Encoding.ASCII.GetString(decrypted);
}
protected void btnRegister_Click(object sender, EventArgs e)
{
    Cryptography crypt = new Cryptography();
    var registerUser = new test.Model.User();
    registerUser.Name = txtName.Text;
    registerUser.Surname = txtSurname.Text;
    registerUser.EmailAddress = txtEmailAddress.Text;
    registerUser.Password = txtPassword.Text;
    registerUser.DateRegisterd = DateTime.Now;
    new test().RegisterUser(registerUser, crypt.privateKey, crypt.publicKey,crypt, encrypted);
}
public void RegisterUser(User user, string privateKey, string publicKey, Cryptography crypt, byte[] encrypted)
{
    try
    {
        var repo = new UserRepository();
        byte[] plainText = Encoding.ASCII.GetBytes(user.Password);
        encrypted = crypt.encrypt(plainText, crypt.publicKey);
        user.Password = Encoding.ASCII.GetString(encrypted);
        user.PrivateKey = crypt.privateKey;
        user.PublickKey = crypt.publicKey;
        repo.Add(user);
    }
    catch (Exception ex)
    {
    }
}
Thanks in advance.
 
     
     
     
    