您好,登錄后才能下訂單哦!
這篇文章給大家介紹MySQL密碼驗證的原理是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1.服務器端會隨機生成一個random string發送給客戶端;
2.客戶端收到random string后,進行hash加密
第一步,將密碼hash,得到hash值hash_stage1; eg.hash_stage1=sha1("password");
第二步,二次hash,得到hash_stage2; eg. hash_stage2=sha1(hash_stage1);
第三步,將密碼二次hash得到的值與random string進行hash,得到hash_stage3; eg. hash_stage3=sha1("random string",hash_stage2);
第四步,異或處理準備發送給服務器端,得到reply=xor(hash_stage1,hash_stage3);
最后,將reply的值發送給服務器端。 www.2cto.com
3.服務器端收到reply后同樣進行hash運算
第一步,將保存的hash形式的密碼hashpassword與random string進行hash,得到server_hash_stage1=sha1("random string","hashpassword");
第二步,將客戶端發送的reply與剛才得到的hash值進行異或運算,得到xor_value; eg. xor_value=xor(reply,server_hash_stage1);
第三步,將得到的異或值進行hash,得到server_hash_stage2; eg. server_hash_stage2=sha1(server_hash_stage1);
第四步,驗證,將最后得到的hash值server_hash_stage2與保存的密碼hashpassword進行比較。eg. server_hash_stage2==hashpassword,相等則驗證通過。
關于MySQL密碼驗證的原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。