亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SH256 Java 中的登錄密碼

SH256 Java 中的登錄密碼

慕娘9325324 2023-11-10 17:22:37
在我的 java 應用程序中,我的密碼以 SH256 生成的十六進制表示形式加密發送到數據庫。我對如何確定用戶登錄時是否具有正確的密碼感到困惑。如果有人能指出我正確的方向,我將不勝感激。
查看完整描述

3 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

您應該以散列形式存儲密碼。這樣您將無法對其進行逆向工程以獲取原始密碼。現在您可能會問為什么要使用單向哈希來存儲密碼?問題是,您不希望任何人對數據庫中的數據進行逆向工程。即使有人可以訪問您的數據庫,他們仍然無法知道實際的密碼?,F在談談如果您自己無法獲得原始密碼,如何驗證密碼。

問題是,你不必這樣做。您只需讓用戶輸入他的密碼,然后對輸入的密碼進行散列(并且由于相同數據的散列將始終生成相同的散列)您可以輕松驗證用戶輸入的密碼和您散列的密碼是否與已散列的相匹配并存儲密碼。

更簡單的方法是,您必須在注冊時獲取密碼p并將其作為散列密碼存儲在數據庫中hashed_p?,F在,當您想要登錄或驗證密碼時,您再次要求用戶輸入密碼?,F在您將對p用戶輸入的密碼進行哈希處理并生成哈希密碼hashed_p。然后您將將此 hashed_p 與hashed_p數據庫中的散列密碼進行比較。

因此,要驗證您必須檢查用戶輸入的密碼的哈希值是否等于數據庫中存儲的密碼的哈希值。這就是密碼散列的工作原理。


查看完整回答
反對 回復 2023-11-10
?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

正確的做法是從前端獲取密碼,使用相同的算法對其進行加密,并將加密方式與存儲的密碼進行比較。



查看完整回答
反對 回復 2023-11-10
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

我們今天存儲和驗證用戶密碼的默認且最安全的方法是“加鹽慢哈希”。(簡單的哈??赡懿粔蚝茫?/p>

以從 SH256 生成的十六進制表示形式加密到數據庫。

假設您的意思是使用 SHA-256 對密碼進行哈希處理。正如已經評論過的,加密和散列之間存在差異,在這個領域你需要清楚

我對如何確定用戶是否擁有正確的密碼感到困惑

  • 選擇與用戶密碼的哈希值一起存儲的鹽

  • 使用鹽對用戶提供的密碼(登錄時提供)進行哈希處理

  • 從數據庫中選擇用戶名和密碼哈希匹配的用戶記錄


查看完整回答
反對 回復 2023-11-10
  • 3 回答
  • 0 關注
  • 248 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號