问题标签 [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 回答
43 浏览

python-3.x - 在 Model.create 之后未观察到 ForeignKeyField 子类 python_value

好奇我试图在 Peewee 的ForeignKeyField. 我已将其子类化以使用该Hashid库为hashid处理模型对象的任何事物(例如,使用 API 进行序列化)提供一个 obscured 而不是原始 Integer。

存储和检索对象(行)似乎很好,但是当使用ModelClass.create创建一个新的对象/行时,我发现id对象上的是int值,而不是hashid编码的输出。

问题是:如何让新模型实例在创建后在 id 字段中报告 hashid 编码的 id,而不是原始 int?它是 peewee 中应该使用该python_value功能的错误,还是这是预期的行为?不建议子类化PrimaryKeyField吗?

下面是一些代码来演示:

0 投票
1 回答
398 浏览

php - 如何使用 hasid 生成唯一的 5 位客户编号

嗨,我想生成仅包含来自的数字的unique五位数字customer number0....9

我正在使用这个包:https ://github.com/ivanakimov/hashids.php

我能够生成id,但它包含alphabet像 a...z

这就是我的生成方式

但我想输出这样的东西 22345,46643,...等

我怎样才能做到这一点 ??

0 投票
2 回答
1983 浏览

mysql - 使用 Hashids 生成唯一的参考 id

在我的数据库中,我需要有唯一的订单参考 ID,以显示最终用户。

我的架构包括许多可能有很多客户的帐户,这些客户可以下很多订单(有时同时 - 不同的客户,以及有很多订单的单个客户)

我决定使用 Hashids 来解决这个问题。我想出了这个:

这会有多随机?我该如何验证呢?

谢谢

0 投票
1 回答
1158 浏览

javascript - Angular 的 HashId

我正在尝试在 Angular Last 版本项目中使用http://hashids.org 。

我找到了这个定义文件:

但是当我尝试使用以下代码在我的 Angular 项目中使用时:

我收到了这个错误:

错误 TS2351:不能将“new”与类型缺少调用或构造签名的表达式一起使用。

在我的本地它可以正常工作,没有问题。但我试图编译一个生产设置,但它不起作用。

0 投票
0 回答
1875 浏览

amazon-dynamodb - 为 DynamoDB 生成唯一 ID,其位数少于 UUID

对于 DyanamoDB 支持的 Web 应用程序,我需要生成唯一、稳定的 URL,这些 URL 可靠地引用 DynamoDB 表中的唯一行。

过去,对于 PostgreSQL 支持的应用程序,我使用自动递增整数作为主键并使用整数的hashid得到了很好的结果:

然后我会在 URL 中使用它:

但是,对于 DynamoDB,没有自动递增的主键,而是建议使用 UUID

但是,UUID 包含 128 位,并且 UUID 的 hashid 更长:

URL 太长了,或者至少是丑陋的:

我已经看到建议简单地掩盖 UUID

但即使这样似乎也有点长:

我可以看到更多的位:

但这似乎有点危险:

在这里做什么最好/最安全?我预计此表不会有繁重的写入负载,所以我是否需要分解并实现一个带有条件写入的自动递增整数方案?

更新:

我刚刚意识到,如果我右移 UUID1 的 32 位,它似乎是相当独特的:

但这会回来咬我吗?:D

更新 2:

要回答评论中的一些问题:

我的应用程序将是唯一一个写入此表的应用程序。

该应用程序是用 Python 编写的。

表的数据架构使用用户 ID 的哈希键和根据行中存储的内容而变化的排序键。假设我正在存储用户记录、用户的项目和项目中包含的文档。我可能最终会拥有一个全局二级索引来支持基于 URL hashid 的查询,除非 hashid 和记录的主键最终是等价的。

该表的常见查询将是:

  1. 另一个 GSI 支持的电子邮件用户(用于登录)
  2. 所有用户(通过哈希键)
  3. 一个用户的所有项目(使用 hash key 和 sort key beginswith()
  4. 一个特定的项目(由正在讨论的 GSI 支持)
  5. 特定项目中的所有文档(哈希键和排序键beginswith()
  6. 单个文件(由 GSI 支持,讨论中)
0 投票
2 回答
1067 浏览

spring-data-rest - 使用 HashID 的 Spring Data Rest ID 转换

我们担心将内部 ID 暴露给外界。因此,我正在考虑使用散列机制(当前选择是 hashids)来散列我们的 ID。

我尝试在实体 ID 字段上使用 @JsonSerializer 和 @JsonDeserializer 映射。但这仅在正文中包含 ID 时生效,对 URL 路径中的 ID 没有影响。

是否有可能做到这一点,例如像 ID 翻译 SPI 之类的东西?

0 投票
0 回答
259 浏览

javascript - 如何在 Angular 上使用 hashids?

回答

是我见过的唯一的角度端口。问题是,它不再被维护,也没有在 GitHub 上的 read.me 上提供快速入门教程。我也想过直接使用 hashids.js,但我对我遵循的步骤感到困惑。

所以我想知道是否有人在角度上使用它以及他们是如何做到的。谢谢!:)

更新

我试过导入所说的 ng 端口,但它给出了这个错误

./node_modules/ng2-hashids/index.ts 中的错误模块构建失败:错误:C:\Users\FireCuda\Projects\angular\InformationAndEve ntSystem\stiGoDashboard\node_modules\ng2-hashids\index.ts 从 Ty peScript 中丢失汇编。请通过 'files' 或 'include' 属性确保它在您的 tsconfig 中。丢失的文件似乎是第三方库的一部分。已发布库中的 TS 文件通常是库打包不良的标志。请在库存储库中打开一个问题以提醒其作者并要求他们使用 Angular 包格式打包库。在 AngularCompilerPlugin.getCompiledFile (C:

第二次更新

我尝试直接导入库

并尝试了这段代码 let id = hash.encode(this.studentDocument.student_id_number); 控制台.log(id);

但它抛出了这个错误,可悲。

我什至试过这个

但它会抛出这个错误

似乎在任何人都可以在 Angular 上使用它之前,它需要更新。任何关于如何使用纯 js 库的提示,尤其是这个,将不胜感激!

0 投票
1 回答
401 浏览

javascript - 如何在 Angular 上使用纯 JavaScript 库 hashids.js?

我尝试直接导入库

并尝试了这段代码

但它抛出了这个错误,可悲。

我什至试过这个

但它会抛出这个错误

任何提示将不胜感激!(这篇文章的续篇)

0 投票
0 回答
137 浏览

python - python生成随机优惠券代码的缺点

我正在尝试使用以下代码生成随机优惠券代码。我正在使用Hashids pip 包来实现这一点

寻找以下代码的缺点?

0 投票
1 回答
162 浏览

hashids - 为什么哈希值可以被解码?

我使用了这个流行的库Hashids

正如这张海报所提到的,Hashes produced by these algorithms are designed to be 'one-way'。那么,为什么哈希值可以被解码呢?

我已经阅读了文档(并搜索了问题),但不明白为什么这个库创建的哈希可以被解码。

我正要在 git repo 中问这个问题,但这是一个问题而不是问题。

任何见解将不胜感激。