有时候我们不希望直接把ID暴露给用户,因为有规则的ID,容易泄露信息,同时有可能被第三方直接遍历抓取资源。这时为了安全考虑,我们需要对ID进行加密解密。
laravel的一个对ID加密解密的扩展包地址:
https://github.com/vinkla/laravel-hashids
1.在laravel中安装hashids
composer require vinkla/hashids
2.在config/app.php中的providers数组中添加
\Vinkla\Hashids\HashidsServiceProvider::class, // hashids 加密
3.在config/app.php中的aliases数组中添加
'Hashids' => Vinkla\Hashids\Facades\Hashids::class,
4.在config下生成hashids.php配置文件
php artisan vendor:publish
5.修改hashids.php中的connections的盐值和加密输出长度
其中盐值可以是任意长度任意字符的字符串,加密和盐值有直接的关系,盐值是解密的钥匙。我直接取项目的密钥作为其盐值,以让项目统一,且不同项目的加密结果不一样。
'connections' => [
'main' => [