Asp.net mvc 4 加密密码不保存在数据库中,只保存salt密码

Asp.net mvc 4 加密密码不保存在数据库中,只保存salt密码,asp.net-mvc-4,Asp.net Mvc 4,我使用了以下代码进行用户注册。调试代码时,密码是加密的,但它存储为纯文本。密码salt也存储在数据库中 [HttpPost, RecaptchaControlMvc.CaptchaValidator] public ActionResult Register(Authentication reg, bool captchaValid, string captchaErrorMessage) { if (!captchaValid)

我使用了以下代码进行用户注册。调试代码时,密码是加密的,但它存储为纯文本。密码salt也存储在数据库中

    [HttpPost, RecaptchaControlMvc.CaptchaValidator]
    public ActionResult Register(Authentication reg, bool captchaValid, string captchaErrorMessage)
    {
        if (!captchaValid)
            ModelState.AddModelError("captcha", captchaErrorMessage);

        if (ModelState.IsValid)
        {
            Registeration register = new Registeration();

            var crypto = new SimpleCrypto.PBKDF2();

            //string encrypPass = crypto.Compute(reg.Password);
            //var length = encrypPass.Length;

            register.FirstName = reg.FirstName;
            register.LastName = reg.LastName;
            register.Email = reg.Email;
            register.Password = crypto.Compute(reg.Password);
            reg.PasswordSalt = crypto.Salt;

            db.Authentications.InsertOnSubmit(reg);
            db.SubmitChanges();
        }

        return View();
    }

任何帮助都将不胜感激。谢谢

您不是在数据库中存储register,而是在存储原始项(reg)

easiset方式(更改最少)


这是一个很好的例子,有一些代码可以下载


在哪里将
注册
添加或保存到数据库?您似乎是为
reg
执行此操作的。如何将注册表添加到数据库?如何将注册表存储到数据库?
public ActionResult Register(Authentication reg, bool captchaValid, string captchaErrorMessage)
{
    if (!captchaValid)
        ModelState.AddModelError("captcha", captchaErrorMessage);

    if (ModelState.IsValid)
    {
        var crypto = new SimpleCrypto.PBKDF2();
        reg.Password = crypto.Compute(reg.Password);
        reg.PasswordSalt = crypto.Salt;

        db.Authentications.InsertOnSubmit(reg);
        db.SubmitChanges();
    }

    return View();
}