3
我正在將後端服務器作爲個人項目。目前,當有人註冊時,他們的密碼用Bcrypt散列,並保存在數據庫中。但是,每次需要查詢數據庫時,都需要驗證請求是否來自經過身份驗證的用戶,這似乎太多了。結果,我開始懷疑將這些內容緩存在服務器的內存中。我認爲在這個內存中存儲一個未散列的密碼是不安全的。什麼是最安全的方式來實現這一點?我可以緩存密碼的Bcrypte'd副本,然後只驗證用戶的密碼是否與緩存的Bcrypt副本相匹配,但是如果可以,我還想盡可能少地使用bcrypt。我假設將密碼和Bcrypt'd版本一起存儲在緩存中,即使未鏈接到用戶名,也不是一個好主意。在保持安全性和性能的同時,我還能做些什麼嗎?在緩存中安全地存儲密碼哈希
爲什麼每次查詢數據庫「太多」?考慮替代品是件好事,但它聽起來像是在過度設計它。 – acfrancis
我沒有最好的硬件資源,並且如果可能的話,我想盡量減少數據庫查詢和執行的資源密集型作業的數量。但是,如果這完全危及安全,我會忍受它。 – User093203920
我認爲在緩存中存儲哈希密碼很好。存儲明文密碼不是。除非你有數據告訴你,否則我的默認建議總是先做最簡單的事情(換句話說,忘記緩存並只查詢數據庫)。 – acfrancis