Laravel 限制crypt或hash的输出长度

Laravel 限制crypt或hash的输出长度,laravel,encryption,hash,laravel-7,Laravel,Encryption,Hash,Laravel 7,我想知道是否有办法限制加密或散列值的输出 我的情况是,我为客户提供链接,将id链接到我的db中的条目,该条目包含接收方的相关信息。所以。。。为了避免访问别人的条目,我正在加密id,并将其结果附加到链接中。现在我面临的问题是,那些“最终链接”非常长,而且丑得像f%!#(事实上,我得到了很多回复,他们看起来非常可疑,一些客户没有点击它,因为他们害怕被重定向到钓鱼网站) 然而,这让我想到了限制或单独设置加密结果的长度的选项,比如强制它包含8到16个字符,而不是大约250个字符(不确定它们的实际长度)。

我想知道是否有办法限制
加密
散列
值的输出

我的情况是,我为客户提供链接,将
id
链接到我的
db
中的
条目
,该条目包含接收方的相关信息。所以。。。为了避免访问别人的
条目
,我正在
加密
id
,并将其结果附加到链接中。现在我面临的问题是,那些“最终链接”非常长,而且丑得像f%!#(事实上,我得到了很多回复,他们看起来非常可疑,一些客户没有点击它,因为他们害怕被重定向到钓鱼网站)

然而,这让我想到了限制或单独设置
加密结果
长度的选项,比如强制它包含8到16个字符,而不是大约250个字符(不确定它们的实际长度)。我还想避免使用诸如重定向页面和“自制”URL缩短器之类的东西,因为我不需要额外的步骤。 目前我已经花了两个多小时在谷歌上搜索和阅读了一些关于这个话题的讨论,是的。。。我对结果不满意。他们中的大多数人是在大约两年到五年前开始的

我还做了什么? 我查看了,尤其是
illighted\Encryption\Encrypter
,但仍然没有找到解决方案

好极了。。。我希望任何人都能帮助我解决基于laravel的问题。除了laravels
encrypt
Hash::make
之外,我不想使用像
php\u mbcrypt
本身这样的东西


提前谢谢

您真的需要加密还是只需要一个随机字符串?如果无法定义加密结果的长度,我将添加一个包含随机字符串/哈希的列来标识条目。但现在,我想知道这是否可能,并继续加密id,以避免添加额外的步骤和列来处理这个简单的过程。原因是,在某些情况下,我不会向id所属的表发送请求。G将其作为条目的外键添加到另一个表中。所以我可以使用decrypt,我就有了id。否则我将被迫先获取id,然后更新第二个表。我建议你做一些变通。如果您真的不需要加密,只需创建一个生成字母数字字符串的函数。250个字符?在base64编码后使用AES加密短(<16字节)ID:16字节用于密文块,16字节用于IV,加上33%的base64开销。也就是说,“为了避免访问他人的条目”,您需要访问控制,而不是加密。如果我接触到其他人的链接,加密ID不会起任何作用。根据输入明文的大小,加密的长度是可变的。哈希是固定长度的,无论输入的大小如何。确保您使用的流程符合您的要求。SHA-256散列总是提供256位(32字节)的输出。您真的需要加密还是只需要一个随机字符串?如果无法定义加密结果的长度,我将添加一个包含随机字符串/散列的列来标识条目。但现在,我想知道这是否可能,并继续加密id,以避免添加额外的步骤和列来处理这个简单的过程。原因是,在某些情况下,我不会向id所属的表发送请求。G将其作为条目的外键添加到另一个表中。所以我可以使用decrypt,我就有了id。否则我将被迫先获取id,然后更新第二个表。我建议你做一些变通。如果您真的不需要加密,只需创建一个生成字母数字字符串的函数。250个字符?在base64编码后使用AES加密短(<16字节)ID:16字节用于密文块,16字节用于IV,加上33%的base64开销。也就是说,“为了避免访问他人的条目”,您需要访问控制,而不是加密。如果我接触到其他人的链接,加密ID不会起任何作用。根据输入明文的大小,加密的长度是可变的。哈希是固定长度的,无论输入的大小如何。确保您使用的流程符合您的要求。SHA-256哈希始终提供256位(32字节)的输出。