密碼是軟件系統中非常常見的屬性,密碼保存和傳遞都需要考慮如何才能不泄漏。 密碼存儲 密碼在服務器都需要加密保存,根據用途不一樣,有可逆加密(AES)和非可逆加密(PBKDF2)算法。 可逆加密方式存儲 可逆加密一般是客戶端保存密碼,客戶端需要還原出密碼然后使用密碼訪問服務器。可逆加密的AES算法需要一個密鑰,通過密鑰加密和解密。因此AES算法的關鍵就是密鑰。 1.根密鑰 根密鑰不加密存儲,文件權限為600 非可逆加密方式存儲 非可逆加密一般是服務端存儲密碼方式,因為服務端不需要逆向密碼明文,服務端在校驗密碼的時候,有很多種方式。最常見的是把客戶端發送過來的明文密碼加密得到密文,與服務器保存的密文對比是否相等。 非可逆加密一般有一個隨機鹽值,保護好隨機鹽值,比可逆加密算法防護措施要簡單。 密碼傳輸 在很多場景下,需要在不同系統或進程之間傳輸密碼,特別是不同的系統,傳輸密碼比較麻煩。 1.不同系統之間,不能共享密鑰(如果需要共享密鑰的話非常復雜,讀者們可以結合實際場景思考),所以不能傳輸加密之后的密碼 當然,細心的讀者發現這個例子不合適,因為你ps不到mysql客戶端的密碼! 環境變量 ,對就是用環境變量傳遞明文密碼。每個進程的環境變量保存在: |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信