gpt4 book ai didi

php - 限制 Laravel 5 加密长度

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:44:03 24 4
gpt4 key购买 nike

我有一个商业目录的 Laravel5 web 应用程序。

当我加密像

这样的值时
$cryptval = Crypt::encrypt(1);

result = eyJpdiI6IndhaFZFNlhIRDlURzdXanJVMEhBM0E9PSIsInZhbHVlIjoidWF3VzRFZDhyRHltUlwveDdyV0VVWnc9PSIsIm1hYyI6IjE5YjA2YWIyN2Q0MTBlYjdhNDJiNDE5ZjY2OGQ2MDA2NzQ3ZTA4ODc4NzY0ZTIwMjBiMzQxN2RjNmM5ZDg3ZjYifQ==

它给出了一个大约 250 长度的长字符串。

在laravel中有什么方法可以限制这个字符串的长度吗?

我的客户需要在邮件函数中添加带有加密值的 URL。 例如:

www.example.com/varify/eyJpdiI6IndhaFZFNlhIRDlURzdXanJVMEhBM0E9PSIsInZhbHVlIjoidWF3VzRFZDhyRHltUlwveDdyV0VVWnc9PSIsIm1hYyI6IjE5YjA2YWIyN2Q0MTBlYjdhNDJiNDE5ZjY2OGQ2MDA2NzQ3ZTA4ODc4NzY0ZTIwMjBiMzQxN2RjNmM5ZDg3ZjYifQ==

但是邮件功能只允许一定长度的 URL :(

最佳答案

一种解决方案是将散列值存储在表中,然后通过散列值的自增 ID 引用散列。

| id | hash             | timestamp | random_key |
| 1 | some-hash | 125346164 | 21415 |
| 2 | some-other-hash | 123513515 | 25151 |

所以现在,不要使用:

www.example.com/verify/some-hash

您可以使用:

www.example.com/verify/1

id 真的应该被混淆,而不是仅仅作为一个整数使用——这正是时间戳和 random_key 可以提供帮助的地方。

$id = 1;
$timestamp = 125346164;
$randomKey = 21415;

$key = base64_encode($timestamp . $randomKey . $id);

echo 'http://www.domain.com/verify/' . $key;

// http://www.domain.com/verify/MTI1MzQ2MTY0MjE0MTUx

综上所述,我的建议是尝试解决电子邮件传送平台设置的限制,如 URL's can support an address length of around 2000 characters .您给出的示例的长度仅为 32,完全属于任何现代浏览器可接受的长度。

编辑:只需使用类似this 的包生成uuid而不是尝试创建自己的随机 ID。这将生成一个字符串,例如 d3d29d70-1d25-11e3-8591-034165a3a613

关于php - 限制 Laravel 5 加密长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33211060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com