Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
作为Laravel中过程的一部分,使用用户密码加密数据库字段_Laravel_Encryption - Fatal编程技术网

作为Laravel中过程的一部分,使用用户密码加密数据库字段

作为Laravel中过程的一部分,使用用户密码加密数据库字段,laravel,encryption,Laravel,Encryption,拉威尔5.0 我想加密数据库中的一些数据,不仅使用应用程序密钥,还使用用户密码或他将提供的任何其他字符串 原因是我只希望他能够解密数据 我该怎么做呢 -使用Javascript并在本地加密密码,然后将其发送到服务器 或 -是否将用户输入的文本直接发送到服务器 所有流量都将使用HTTPS我认为你的问题与Laravel无关,你只想知道如何发送密码。在HTTPS下以纯文本发送,并在服务器上进行加密。如果你在你的服务器上进行加密,你可以相信它被正确加密了(如果你在JavaScript中进行加密,你必须仔

拉威尔5.0

我想加密数据库中的一些数据,不仅使用应用程序密钥,还使用用户密码或他将提供的任何其他字符串

原因是我只希望他能够解密数据

我该怎么做呢

-使用Javascript并在本地加密密码,然后将其发送到服务器

-是否将用户输入的文本直接发送到服务器



所有流量都将使用HTTPS

我认为你的问题与Laravel无关,你只想知道如何发送密码。在HTTPS下以纯文本发送,并在服务器上进行加密。如果你在你的服务器上进行加密,你可以相信它被正确加密了(如果你在JavaScript中进行加密,你必须仔细检查它),而且你也不必在其他平台(例如移动平台)上重新实现它。这里唯一的问题是,只有用户才能解密数据,用户不会感到安全。为什么会这样?如果您没有存储该密码,用户没有理由感到“不安全”。在客户端这样做并不意味着它在任何方面都更值得信任。我看不出有什么真正的问题。如果您使用的是SSL,那么就在服务器端进行加密。例如,如果您在登录时检查Google services发送的请求有效负载,您将看到他们也以明文形式发送密码,我没有看到他们的客户质疑他们的安全级别。至于你担心你的客户可能会感到不安全,这就是为什么你有一个问题。我认为你最初的论点可能依赖于你没有提到的东西(我想让你做到这一点),这是“查看源代码透明度”(用户可以在源代码中检查我是否这样做)。这是一个非常有缺陷的论点,因为,见鬼,即使是一个密码学家也不能告诉你的JS加密是可靠的(真的很好的文章:)我不认为你的问题与Laravel有关,你只是想知道如何发送密码。在HTTPS下以纯文本发送,并在服务器上进行加密。如果你在你的服务器上进行加密,你可以相信它被正确加密了(如果你在JavaScript中进行加密,你必须仔细检查它),而且你也不必在其他平台(例如移动平台)上重新实现它。这里唯一的问题是,只有用户才能解密数据,用户不会感到安全。为什么会这样?如果您没有存储该密码,用户没有理由感到“不安全”。在客户端这样做并不意味着它在任何方面都更值得信任。我看不出有什么真正的问题。如果您使用的是SSL,那么就在服务器端进行加密。例如,如果您在登录时检查Google services发送的请求有效负载,您将看到他们也以明文形式发送密码,我没有看到他们的客户质疑他们的安全级别。至于你担心你的客户可能会感到不安全,这就是为什么你有一个问题。我认为你最初的论点可能依赖于你没有提到的东西(我想让你做到这一点),这是“查看源代码透明度”(用户可以在源代码中检查我是否这样做)。这是一个非常有缺陷的论点,因为,见鬼,甚至连一个密码学家都不能告诉你的JS加密是可靠的(非常好的文章:)很好的解决方案!使用Laravel,您可以在此处使用Auth::user()->password2问题方便地获取用户密码以替换$userString。首先,用户会声称我存储了密码,这样我就可以解密他的数据。如果用户更改密码会发生什么情况。我或他应该保持密码更改的历史记录,或者永远不要更改它…1-你可以声称谷歌以明文形式存储你的密码,这是不安全的,所以我们不应该使用谷歌服务。如果你不信任谷歌,就不要使用他们的服务,如果他们声称他们对密码撒了盐,你最好信任他们,或者干脆走开。你的服务也会发生同样的情况。2-您没有使用用户密码,用户提交了一个您不存储的密钥,因此他们必须记住它。如果用户想要更新密钥,他们必须提供旧密钥和新密钥。使用旧密钥,您可以解密数据并使用新密钥进行加密。您还可以散列并存储该密钥,这样您就不知道实际密钥是什么,但您可以检查用户是否提交了错误的密钥,这样他们就不会以错误的密钥解密内容(这可能会产生jiberish)。很好的解决方案!使用Laravel,您可以在此处使用Auth::user()->password2问题方便地获取用户密码以替换$userString。首先,用户会声称我存储了密码,这样我就可以解密他的数据。如果用户更改密码会发生什么情况。我或他应该保持密码更改的历史记录,或者永远不要更改它…1-你可以声称谷歌以明文形式存储你的密码,这是不安全的,所以我们不应该使用谷歌服务。如果你不信任谷歌,就不要使用他们的服务,如果他们声称他们对密码撒了盐,你最好信任他们,或者干脆走开。你的服务也会发生同样的情况。2-您没有使用用户密码,用户提交了一个您不存储的密钥,因此他们必须记住它。如果用户想要更新密钥,他们必须提供旧密钥和新密钥。使用旧密钥,您可以解密数据并使用新密钥加密。您还可以散列并存储该密钥,这样您就不知道实际密钥是什么,但您可以检查用户是否提交了错误的密钥,这样他们就不会以错误的密钥解密内容(这可能会产生jiberish)。
// Encrypt
$key = md5(Config::get('app.key') . $userString);
Crypt::setKey($key);
$encypted = Crypt::encrypt($input);

// decrypt
$key = md5(Config::get('app.key') . $userString);
Crypt::setKey($key);
$decypted = Crypt::decrypt($encypted);