Salt
使用用主密碼加鹽的站點名稱的雜湊是所有站點的安全密碼嗎?
我正在考慮創建一個應用程序,該應用程序能夠通過對 url 進行散列處理,同時使用安全的主密碼作為鹽(或技術上的胡椒,因為它總是相同的?)。我在密碼學領域非常缺乏經驗,所以如果這是一個愚蠢的問題,那麼很抱歉浪費你的時間(:
使用鹽的目的是對彩虹表採取對策。在您的情況下,我們可以認為您通過使用主密碼和網站的 URL 作為鹽來為每個網站創建密碼。
通常,您可以安全地對抗彩虹桌。但是,必須考慮主密碼被洩露的情況。由於您的 URL 是已知的並且雜湊算法也是已知的,因此所有站點都很容易受到攻擊。
更好的解決方案是,首先,使用離線系統使用您的主密碼使用 KDF 函式(如 Bcrypt、Argon2、PBKDF2)為每個站點生成密碼。對於 KDF 中的隨機性,您可以使用 URL,但也可以添加其他隨機值。現在,將您的主密碼保存為離線,或在完成後刪除。
然後您可以直接使用這些密碼。而且,請記住,您仍然需要網站中的鹽和胡椒來對抗彩虹表。