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接收到您输入的纯文本密码(您在表单中输入的密码),然后使用相同的哈希算法对其进行哈希处理,将结果与数据库中的结果进行比较 - 如果两个哈希匹配,则假定两个源字符串(密码)也是相同的。这是今天保护密码的最常见方式 –