簡體   English   中英

PasswordSalt與SimpleMembershipProvider的作用

[英]Role of PasswordSalt witn SimpleMembershipProvider

我分析了SimpleMembershipProviderCreateAccount方法,發現其中的PasswordSalt未存儲在數據庫中,僅保存了hashedpassword PasswordSalt

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);

節省鹽分很普遍,但沒有必要。 這主要取決於鹽的產生方式。

如果鹽僅依賴於數據庫中已經存在的信息(例如UserId),則可以使用該信息重新創建鹽。

另一種選擇是將鹽與密碼哈希連接起來,而無需使用明確的分隔符。 因此,可能是密碼哈希的前8個字節實際上是鹽。

然后,有可能不使用鹽。 因此,無需填充它。 實際情況似乎在這里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM