问题标签 [hashids]

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.

0 投票
0 回答
38 浏览

laravel - Laravel - 在用户 id 上添加 mutator 后登录失败

我有经典的用户 ID 表,其中主键是 BigIncrement。

我需要对用户隐藏 id 值。所以我的想法是使用 hashIds 包。我为屏蔽 id 所做的是在 id 列上创建 mutator:

屏蔽效果很好,但是当我尝试登录时会出现问题。似乎未创建登录会话。

我的问题是:

  1. 为什么创建 id mutator 后登录失败?我假设要创建会话它涉及 id 值
  2. 除了使用 mutator 之外,还有什么更好的方法来屏蔽 id?
0 投票
1 回答
425 浏览

laravel - Laravel - 编码在 getRouteKey 中不起作用 - (Hashids\Hashids)

我正在尝试在我的 URL 中对递增的 ID 进行哈希处理。我似乎无法正确编码,我遵循了这个这个教程,但这没有帮助。我尝试了我在getRouteKey()控制器中的代码,它似乎正在完成这项工作并按预期对 ID 进行哈希处理。

有人看到我做错了吗?

更新 然后我使用如下绑定/解码;

我的路线是;

0 投票
1 回答
243 浏览

javascript - 生成的哈希大小

今天我生成哈希如下:

所以控制台上打印的是:

但是,如果我将变量“数字”更改为数字 1419857,结果是:

我的疑问是:我正在经历的字母表有 26 个字符,我定义 hashid 的最小大小为 6 个字符,我可以使用 6 个字符的最大 hashid 不会是 308.915.776 (26 * 26 * 26 * 26 * 26 * 26 )?为什么在数字 1.419.857 中他已经在我的 hashid 中增加了一个字符?

0 投票
0 回答
98 浏览

javascript - hashid 加密在 PHP 中不返回任何值

试图加密文本:- "Michael Fehr" 或 "carpet" 使用hashids,它返回空白。

代码:-

也尝试过:- $hashed_interestrate = $hashids->encode_hex("63706b64");,但不工作。如果我尝试文字:-“CPC”,它正在工作。

0 投票
1 回答
214 浏览

php - Laravel 有没有办法在访问路由之前对 URL 中的数据 ID 进行去哈希处理?

我正在使用包hashids\hashids对通过 URL 发送的数据的 ID 进行哈希处理(例如 .../post/bsdfs/edit,'bsdfs' 是编码值)。我按照Stuart Wagner的访问器方法这样做。以下是我的做法:

在对我得到的 ID 进行哈希处理之前post/2/edit。在哈希过程之后,我得到了post/bsdfs/edit,这对我来说很好。

重定向到编码路由时会出现问题。这就是我的路线的样子:

重定向后,我收到 404 错误。这是控制器接受的:

我知道如果我使用这种方法,Laravel 正在搜索数据库中不存在的“bsdfs”ID。它应该做的是解码散列并获取 ID。有没有办法在不这样做的情况下做到这一点:

如您所见,我的目标是减少行数,同时仍保持要编码的 URL 中的数据 ID。任何帮助,将不胜感激。谢谢你。

0 投票
1 回答
232 浏览

ruby-on-rails - 通过 hashid 查询 ActiveRecord

我们使用https://github.com/peterhellberg/hashids.rb在我们的 API 中混淆数据库 ID:

在解码 hashids 时,我们必须这样做:

这种模式在我们的应用程序中重复了很多次。我可以编写一些辅助函数,例如find_by_hashidwhere_hashid负责解码和可能的错误处理。但是当将它们与其他查询方法结合使用时,这很快就会变得脆弱。

所以我想知道,是否可以扩展 ActiveRecord 查询接口以支持特殊的虚拟列hashid,这样这样的东西是可能的:

这个想法非常简单,只需寻找hashid密钥,将其转换为id并解码给定的 hashid 字符串。出错时,返回nil

但我不确定 ActiveRecord 是否提供了一种方法来做到这一点,而无需大量的猴子补丁。

0 投票
1 回答
136 浏览

python - 带有自定义模型字段(hashid 字段)的 Django elasticsearch DSL

我有一个使用django hashid字段的模型id

这是另一个模型的相关项目

现在我正在尝试设置 [django elasticsearch dsl] ( https://github.com/django-es/django-elasticsearch-dsl ) 并为此设置Document

但是,当我尝试使用rebuild索引时,python manage.py search_index --rebuild出现以下异常

Django elasticsearch dsl 显然不知道如何处理这样的 hashid 字段。

我想也许我可以让我自己HashIdField喜欢

然后使用它'id': HashIdField,但这给了我另一个例外

有谁知道我怎样才能让它工作?