【问题标题】:Role of PasswordSalt witn SimpleMembershipProviderPasswordSalt 与 SimpleMembershipProvider 的作用
【发布时间】:2015-04-10 14:34:53
【问题描述】:

我从SimpleMembershipProvider 分析了CreateAccount 方法,发现PasswordSalt 没有存储在数据库中,只有hashedpassword 被保存。

不需要在数据库中保存PasswordSalt 吗?

int insert = db.Execute(@"INSERT INTO [" + MembershipTableName + "] (UserId, [Password], PasswordSalt, IsConfirmed, ConfirmationToken, CreateDate, PasswordChangedDate, PasswordFailuresSinceLastSuccess)"
                                    + " VALUES (@0, @1, @2, @3, @4, @5, @5, @6)", uid, hashedPassword, String.Empty /* salt column is unused */, !requireConfirmationToken, dbtoken, DateTime.UtcNow, defaultNumPasswordFailures);

【问题讨论】:

    标签: c# salt simplemembership


    【解决方案1】:

    虽然节省盐分很常见,但没有必要。这主要取决于盐是如何产生的。

    如果盐只依赖于数据库中已经存在的信息,例如 UserId,它可以使用该信息重新创建盐。

    另一种选择是将盐与密码哈希连接起来,而不使用明确的分隔符。所以可能密码哈希的前 8 个字节实际上是盐。

    然后有可能没有使用盐。所以没必要填。 Which actually seems to be the case here.

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 2011-07-04
      • 2012-08-28
      • 1970-01-01
      • 2016-10-09
      • 2013-09-21
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多