问题标签 [laravel-encryption]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - 使用 Laravel 的内置加密工具解密随机错误
我使用加密电子邮件通过邮件向用户发送邀请,以了解哪个用户响应了邀请。就像是:
Hello, click on this link to start learning: https://example.org/start-learning?e=fwTreaN0WybffXdDfZZUNYB3FTFfZObCb7QFF5C4AFJvTjXabIPtRfcoXLkFYMUvD4FIZsmrDdEFN2OPKcTrAOSQLZfuKdfwcic1WtBxWSXWR1GEJD6we213A3BEPBpca0BxaaQ4GGMPFeRyXp6fPrG9WnTgWogwXUcnVtdwSEEdNHGuZsClTxR2AtD2JZN8VAEsRQKpFFShEDR2SET4KxGhLGM3M0FdDelrJtO8KXS2YRaddH==
加密的电子邮件是上面的长字符串。我在Mailable
课堂上像这样对邮件进行编码:
然后将$url
其添加到这样的邮件模板中:
然后,当用户单击链接时,它会路由到控制器,控制器会解密有效负载:
然后,它适用于大约 99% 的点击链接的人。但是对于大约百分之一,它不起作用,我在解密时出错。我不知道为什么。这是加密和解密的同一个 Laravel 应用程序。这种奇怪的行为有原因吗?
旁注:我知道解密总是有效并且没有随机行为(顺便说一句,我在 10000 个条目上对其进行了测试,没关系)。我不明白的邮件过程肯定有其他问题。
php - 无法覆盖 laravel elequent 输出的 id 字段
我无法覆盖以下代码中的 $user->id :
防止这种类型转换(整数到字符串)是laravel eloquent中的规则还是某些东西?
如何用加密字符串替换 id 的整数值?
有什么帮助吗?
php - 未来我们可以依靠 laravel 加密吗?
我们正在构建应用程序,我们需要在数据库中存储加密的数据,而不是使用 MySql AES_ENCRYPT 和 AES_DECRYPT 我们正在使用 laravel 的内置加密和解密功能。
这是否会成为未来的证明,因为我们不想为未来的更新而丢失数据。
ajax - Laravel 加密密钥在页面加载时“消失”
我在使用 Laravel 和 Ajax 时遇到了一些问题,我无法通过 Google 或 Stackoverflow 解决这些问题。无论我看到什么解决方案,我都已经考虑过了。
偶尔我会收到 500 错误(有时是 401)。它只发生在 Ajax 上,这表明我没有正确发送 CSRF 令牌。
但是 CSRF 是在每个页面加载上,并且问题开始于 4 天前,而该项目大约有一个月的历史。它发生在 10 个 Ajax 调用中可能有 1 个。其他 9 个将执行得很好。
Ajax 调用在页面加载后立即进行。Laravel 是否有可能没有更新对传入 Ajax 调用的期望?没有其他 Ajax 调用会导致此问题。
laravel.log 说:
[堆栈跟踪]
这对我来说非常奇怪,有两个原因。首先,存在加密。如前所述,该项目已经存在很长时间,问题是零星的。其次,它说“production.ERROR”,但环境是本地的。我在 .env 文件中有这个:
有人对如何解决或如何进一步调试问题有任何想法吗?我在这里有点空白。
更新:这个问题肯定与页面加载时立即调用的 AJAX 调用有关。我刚刚在不同的项目中出现了完全相同的问题,项目中的所有其他 AJAX 调用都按预期工作;但是在页面加载时立即调用的那个会偶尔出现 401 和 500 失败。
php - 如何计算 Laravel 加密方式输出的最大长度?
设置
鉴于以下情况:
是否有可能知道,对于长度为 1 的字符串,可能的长度范围为 1 $s
?
语境
数据库存储 - 需要存储加密值,并希望设置输入字符串的验证,以便最长长度的输入字符串在加密时被插入到数据库中而不被截断。
基本测试
使用以下代码片段在本地运行一些非常粗略的测试:
我可以看到以下内容,但它在运行之间会有所不同,例如,“a”字符串的长度为 188 或 192(更长的值似乎在 244 和 248 之间)。
所以必须有一个公式。我已经看到output_size = input_size + (16 - (input_size % 16))
但没有考虑到差异。
输出
编辑
好的,所以和下面@Luke Joshua Park 聊了聊,长度的变化来自于laravel 加密函数和方式$iv
创建,是随机字节,可以包含/
.
$value
加密方法里面还可以包含一个/
.
当包含 a 的值/
是 JSON 编码时,将/
转义为\\\/
每次出现额外添加 3 个字符。
真正的问题 - 可以$iv
包含$value
多个“/”吗?
php - 有没有办法改变 Laravel 加密算法,所以它针对相同的字符串生成相同的值?
我正在使用 Laravel 的内置加密方法保存加密的用户数据(包括用于登录的用户电子邮件)。
登录时,我必须提供加密电子邮件进行身份验证,但加密算法每次都会针对同一个字符串生成不同的字符串。
我正在使用以下特征来保存加密数据。
请问我该如何克服呢?
用户模型中的用法
laravel - Laravel json 响应返回加密数据
我正在使用 Encryptable 特征来加密 Room 模型的数据。
RoomController (/rooms)返回解密后的数据,但 ApiRoomController (/api/rooms)不返回。我怎样才能让它返回解密的数据?
可加密特征
RoomController 索引函数
ApiRoomController 索引函数
laravel - Laravel:加密上传的文件/图像
我是 laravel 的新手,尝试加密上传的文件。这是我的控制器:
我正在尝试按照https://stefanzweifel.io/posts/how-to-encrypt-file-uploads-with-laravel/加密文件
但是当我提交表单时出现错误:
“ymfony \ Component \ Debug \ Exception \ FatalThrowableError(E_ERROR)调用字符串上的成员函数getClientOriginalExtension()”
我尝试使用explode转换为数组,但它对数组显示相同的错误:
“调用数组上的成员函数 getClientOriginalExtension()”
mysql - 备份使用 Laravel 加密的数据库的最佳方法是什么?
我正在使用该包betterapp\LaravelDbEncrypter
来加密数据库中的一些数据。
如果出现问题并且我失去了对服务器的访问权限,即使我在其他地方备份了数据库,我也将无法再访问该数据。
保存数据库备份的最佳方法是什么,即使 Laravel 的应用程序密钥不再相同,它也可以恢复?
我正在考虑解密所有值并将备份保存在带有密码的 7z 中。你怎么看?
laravel-encryption - 我可以在 Laravel 中搜索加密数据吗
在 Laravel 中,我在我的表中加密了记录,我想搜索这些记录。
当我再次搜索并加密我的搜索词时会出现问题,它会再次对其进行加密,生成随机字符串。