我準備在github上公開一個項目。在我的項目,進行登錄認證,我有一個字符串,並強烈鍵入它作爲一個Password
:在開源項目中加密密碼
// Stripped down here on SO for brevity
public class Password
{
private const string salt = "sealab2021";
public Password(string password)
{
this.saltedPasswordHash = new MD5Hash(password + this.salt).ToString();
}
public string SaltedHash { get; private set; }
}
顯然,如果鹽是公開檢視,鹽的一文不值。
其他人對開源項目中的密碼做了些什麼,仍然保持鹽語安全隱藏?
salt應該存在於文件系統的某個地方,並在應用程序啓動時加載?看起來像一個合理的解決方案,但如果我真的要使用github進行源代碼管理,而不是在新版本發佈時轉儲到github上,那麼該文件仍然可供公衆訪問。