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

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

如何在不將未加密的密碼發送到服務器的情況下驗證密碼

如何在不將未加密的密碼發送到服務器的情況下驗證密碼

慕姐4208626 2023-05-10 14:18:05
我想構建一個登錄應用程序,它有一個用于輸入用戶名和密碼的客戶端,以及一個服務器,然后接收用戶名和密碼。然后服務器應該檢查它收到的密碼是否與已經存儲的哈希匹配。我認為不將未加密的密碼(僅以字符串形式)從客戶端發送到服務器是明智的,因此我已經在客戶端使用 BCrypt 對其進行了加密。但是現在我在服務器端有兩個哈希,但是 BCrypt 只提供了將明文與哈希進行比較的方法,而不是將哈希與哈希進行比較的方法。我現在應該以明文形式將密碼發送到服務器還是有辦法比較兩個哈希值?感謝您的幫助
查看完整描述

3 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

最簡單的方法是使用 TLS?


查看完整回答
反對 回復 2023-05-10
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

“挑戰-響應”是您應該在谷歌上搜索的術語。

原則:

在服務器端,您存儲了一個散列(加鹽)密碼和鹽。

客戶端首先發送登錄名。

服務器在數據庫中查找登錄的鹽并將其與隨機字符串一起發送給客戶端(這就是挑戰)。

客戶端現在必須按以下方式計算加密密碼:將登錄密碼與鹽連接起來并對其進行哈希處理。將結果與挑戰中的隨機字符串連接起來并對其進行哈希處理。將結果發送到服務器。

服務器現在將散列密碼(存儲在用戶數據庫中)與隨挑戰一起發送的隨機字符串連接起來,并計算散列值。結果必須與從客戶端收到的結果完全相同。


查看完整回答
反對 回復 2023-05-10
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

您可以從數據庫中獲取哈希值并將其與發送的值進行比較



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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