问题标签 [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 投票
3 回答
3499 浏览

hash - 如何设置哈希的最大长度?

我在我的项目中使用Hashidshttp://hashids.org/python/) 。Django

我想创建固定长度的哈希。

Hashids仅支持min_length

如何设置固定长度(比如 10 个字符)hash_id

0 投票
1 回答
186 浏览

ios - Swift 3 中的 Hashids.org 无法正常工作

我安装了 hashids.org github 项目(从这里下载:http://hashids.org/swift/ ,因为我想在我的项目中实现它。

我需要将 15 位预订号码转换为 5 位字母数字字符串,有点像航空公司预订参考(例如 A5UW9)。

问题是, hashids github 项目不能作为

HashidsTests.swift 文件顶部的行给出错误

没有这样的模块“Hashids_Swift”

关于如何使其工作的任何帮助,或者关于如何使用 Swift 中的另一种方法实现上述转换的替代方法的任何建议?

0 投票
2 回答
761 浏览

python - 从数据库中获取主键(Python / Django)

我正在尝试使用Hashids,它在我手动输入要编码的数字时起作用,但如果我试图让它对每个表行的主键进行编码,它就不起作用。

模型.py

上面说 pk 是未定义的,无论我尝试导入什么。

0 投票
1 回答
414 浏览

hash - HashIds - 在数据库中存储或不存储哈希

我正在尝试找出使用Hashids的最佳实践,以及是否应该将我的哈希 id 存储在我的数据库中的列中,或者我应该按照文档中的说明使用它。即在一个区域编码Id,在另一个区域解码。

使用我当前的设置,我一直在对所有主键 ID 进行编码并在值可公开访问时对其进行解码,这是该模块的预期目的,但我担心为我的 ID 唯一生成的哈希将在将来的某个时候发生变化,这可能会导致我的应用程序的链接共享能力等问题。

基于这种情况,我真的应该将生成的哈希存储到我的数据库中的列中并查询吗?

0 投票
1 回答
115 浏览

ruby - 无法在(ruby/sinatra)上安装 hashids gem

我按照此处的说明安装了 hashids gem: https ://github.com/peterhellberg/hashids.rb

但是,当我尝试使用 Hashids 类时,它会向我显示一个错误,就好像它不知道这个类一样:

NameError at / uninitialized constant Hashids

这是失败的代码:

我什至不确定如何调试它,因为我是 ruby​​ 新手。我知道该类是在 Hashids 库中定义的。我认为我不应该使用“必需”,因为我将它安装为 gem。当我运行“gem list”时,我在那里看到了那个 gem:

哈希 (1.0.3)

0 投票
1 回答
203 浏览

server-side - 在服务器端运行 hashids

我正在尝试在 javascript 和 ASP 中使用 hashid,但我需要它在服务器端运行,因为在加载页面之前需要对 DB 进行一些检查。他们网站上的示例/文档没有涵盖这一点。任何人都可以举一个关于库的例子被添加到我的 asp 以及如何调用 encode() 和 decode()。不断收到错误 500,我不得不说我从未尝试过在服务器端运行这样的外部库。

顺便说一句,帮助其他人的提示,如果你想拥有类似于 tinyurl 的东西(比如http://[domain]/[optional_subdirectory]/[hashid])并且在 IIS 上只有一个文件来进行解码,我设置一个自定义 404 页面,它捕获服务器中的所有 url,变量 QUERY_STRING 保存该哈希以进行解码和进一步处理;)

0 投票
1 回答
1371 浏览

php - 使用带有字符串的哈希值

我正在寻找一种从原始字符串生成简短、唯一、不可变和可逆 ID 的方法。我为此找到了完美的库Hashids,但它只需要输入整数,而且我也有字母。

我不想使用常见的加密算法,因为输出很长。

我可以做到这一点,base64_encode但我想用密码进行散列,以防止不受欢迎的人直接解码。

有人知道解决方案吗?

0 投票
0 回答
88 浏览

java - Hashids:swift 和 C 版本之间的兼容性

我正在使用 Hashids swift 版本对数组进行编码,我正在使用 C 版本使用相同的 SALT 对其进行解码。复位后只有一次解码成功,之后每次解码失败。C 版本是 1.1.3,Swift 版本是 1.1.0。虽然如果在 Android 上使用 Java 版本的 Hashids 完成编码,我不会遇到这个问题。Java 版本为 1.0.1。

C代码是:

斯威夫特代码是:

对于所有版本,我都在各自的 Hashids GitHub 存储库中使用最新的更新版本。

编辑:这是 github存储库https://github.com/tzvetkoff/hashids.c,此链接在 hashids 网站上提供:http: //hashids.org/c/

对 hashids_init3 或任何其他函数的调用不会修改其值。事实上,盐在两种语言中都是一个字符串。所以在 C 中它的 const char[] 类型和在 Swift 中它的 String 类型。salt 的值在两种语言中都保留为硬编码值,对于运行 C 代码的设备(即基于 arm 的处理器)不会改变。

0 投票
0 回答
384 浏览

python - Django Factory boy 和 django hashid 字段主键:“UNIQUE 约束失败”

我在模型主键中使用 django hashid 字段,我想使用 django factory boy 来创建工厂。

class Camera(models.Model): id = HashidAutoField(primary_key=True)

但是,当我第二次创建工厂时,我得到了这个错误。

return Database.Cursor.execute(self, query, params) django.db.utils.IntegrityError: UNIQUE constraint failed: camera_camera.id

工厂男孩如何处理自定义字段?

0 投票
0 回答
391 浏览

javascript - 将 hashid 限制为 2 个字符的哈希

我正在使用 hashids 库使用 2 个输入生成唯一哈希。我知道有一种方法可以添加填充以扩展散列的长度。有没有办法截断或设置 hashid 构造函数的最大长度?