Wikipedia提出了基於隨機數的認證的下面的例子:在登錄過程中應使用隨機數?
客戶端從服務器請求隨機數。
服務器響應隨機數(即,以下稱爲「服務器 隨機數」)。
客戶端使用服務器隨機數,其自己的客戶端隨機數和用戶輸入的 密碼生成哈希。
客戶端將用戶輸入的用戶名,客戶端隨機數和哈希值發送到服務器 。
服務器從其 數據庫檢索服務器隨機數和用戶密碼,大概是通過用戶名。
服務器將服務器隨機數,客戶端隨機數和密碼合併爲 生成哈希。
服務器比較剛剛生成的哈希和客戶端發送的哈希。
如果哈希值匹配,則客戶端通過身份驗證。如果不是,則拒絕客戶端 。
這是否意味着服務器以純文本存儲用戶密碼?嚴重違反安全原則,建議保存密碼的醃製散列而不是實際的密碼本身?
不錯。我想到了自己的客戶端哈希,但後來擔心通過線路發送哈希密碼(即服務器數據庫中的值)。你的技術解決了這個問題。 –