首先,我的加密和散列的理解:加密電子郵件,散列密碼並將它們存儲在數據庫中?
- 加密 - 可以解密
- 散列 - 不能被散列的
在構建Web應用程序,我應該:
- 使用加密密鑰加密電子郵件地址(將用於登錄)。很高興能夠解密電子郵件地址供以後使用(例如,向用戶發送電子郵件)
- 用鹽散列密碼。沒有人應該能夠看到用戶的密碼,所以哈希(因爲它是單向的)是好的。
如果上述2點是正確的,我應該在哪裏存儲加密密鑰和鹽?
如果我將它存儲在數據庫中,DB應該被破壞似乎有點沒有意義。但是,好處是我可以爲每個用戶分配一個唯一的加密密鑰和salt。
我應該在我的應用程序的配置中存儲加密密鑰和salt嗎?如果數據庫受到威脅,至少加密密鑰和鹽不會受到影響(希望)。問題在於,這可能意味着每個人都共享相同的加密密鑰和鹽。
建議怎麼做?
也許你應該試着問在http://security.stackexchange.com/這種過度的一些偏執的意見。 – deceze