在資安領域沒有所謂絕對的安全,你只能不斷提高攻擊者的成本
就是換個方式表達資料而已,所以一旦被知道是用什麼 encode 安全性就不復存在。
且現在電腦效能很快,所以列出一堆 decode 的結果並不困難。
所以 不行 。
因為 server 也要驗證使用者,所以 decrypt 所需的 key 也勢必要存在 server 上,
既然 cracker 連 db access 都拿得到了,拿到 key 也就不是什麼難事。
所以 不行。
salt 是建立是建立密碼時隨機產生的值,把 salt 和 hash 過的值都存進 db,
# hash 過的值 SHA1("PASSWORD" + "h7.@-]%<#L")
因為 hash 過的值夠長夠亂,所以網路上的表根本也不可能有這個字串,也就是無法查表破解。
但其實,cracker 都拿到 db access 了,自然也就拿得到 salt,所以他可以把每個人的 salt & hash 都用自己的電腦進行計算。
但每個人的 salt 都不一樣,所以每個密碼都要重算一次,這對 cracker 沒有好處。
在儲存密碼時至少要加鹽再雜湊,而且隨機產生的 salt 盡量要含有特殊字元
Bcrypt 是一種慢雜湊方法,可以設定迭代次數。
所以要重新建表就更慢更久更困難,這也就意味著更安全。