0

毫無疑問,Laravel是一個優雅和強大的框架。我是初學者。據我所知,Laravel的加密器使用OpenSSL提供AES-256和AES-128加密。我的擔心是 - 如果有人訪問我的數據庫並收集我的加密密碼。由於我使用了Laravel內置的加密方法,因此黑客無法解密該密碼。如果在Laravel文檔中討論了加密和解密方法,那麼我認爲這是可能的。請讓我知道這有可能嗎?黑客有可能使用Laravel解密方法輕鬆解密Laravel項目的密碼嗎?

+2

密碼應存儲與鹽+散列,而不是加密。 –

回答

4

Laravel的密碼未加密,它們被散列 - 請參閱https://laravel.com/docs/5.5/hashing。這是兩種完全不同的技術 - 哈希和加密。

  • 加密是可逆的。 Laravel爲您想要安全存儲的內容提供內置加密功能,並且可以稍後解密。
  • 哈希是單向完成的。沒有人 - 不是你,不是系統管理員,不是黑客可以解密用戶表中的密碼。你只能蠻力 - 你可以逐個嘗試不同的密碼,對它們進行哈希和比較散列。
+0

然後當我嘗試登錄時,Laravel如何定義和匹配哈希密碼。 –

+0

@MosharofHossain哈希方法可以實現這一點。一個簡單的方法來看它,它是讓你的密碼輸入你的登錄表單,Laravael計算它中的字符數並將它分隔到你的數據庫中的哈希(它也包含這個例子中的字符數)。如果這個用戶的日誌數是相同的,但是如果你有這個散列值(例如「12」),你就不能得到沒有散列的密碼。 這是一個例子,真正的Hash方法真的更復雜 –

+0

@MosharofHossain當您嘗試登錄時,Laravel接收到您輸入的純文本密碼(您在表單中輸入的密碼),然後使用相同的哈希算法對其進行哈希處理,將結果與數據庫中的結果進行比較 - 如果兩個哈希匹配,則假定兩個源字符串(密碼)也是相同的。這是今天保護密碼的最常見方式 –