问题标签 [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.
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
吗?
下面是一些代码来演示:
php - 如何使用 hasid 生成唯一的 5 位客户编号
嗨,我想生成仅包含来自的数字的unique
五位数字customer number
0....9
我正在使用这个包:https ://github.com/ivanakimov/hashids.php
我能够生成id
,但它包含alphabet
像 a...z
这就是我的生成方式
但我想输出这样的东西 22345,46643,...等
我怎样才能做到这一点 ??
mysql - 使用 Hashids 生成唯一的参考 id
在我的数据库中,我需要有唯一的订单参考 ID,以显示最终用户。
我的架构包括许多可能有很多客户的帐户,这些客户可以下很多订单(有时同时 - 不同的客户,以及有很多订单的单个客户)
我决定使用 Hashids 来解决这个问题。我想出了这个:
这会有多随机?我该如何验证呢?
谢谢
javascript - Angular 的 HashId
我正在尝试在 Angular Last 版本项目中使用http://hashids.org 。
我找到了这个定义文件:
但是当我尝试使用以下代码在我的 Angular 项目中使用时:
我收到了这个错误:
错误 TS2351:不能将“new”与类型缺少调用或构造签名的表达式一起使用。
在我的本地它可以正常工作,没有问题。但我试图编译一个生产设置,但它不起作用。
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 和记录的主键最终是等价的。
该表的常见查询将是:
- 另一个 GSI 支持的电子邮件用户(用于登录)
- 所有用户(通过哈希键)
- 一个用户的所有项目(使用 hash key 和 sort key
beginswith()
) - 一个特定的项目(由正在讨论的 GSI 支持)
- 特定项目中的所有文档(哈希键和排序键
beginswith()
) - 单个文件(由 GSI 支持,讨论中)
spring-data-rest - 使用 HashID 的 Spring Data Rest ID 转换
我们担心将内部 ID 暴露给外界。因此,我正在考虑使用散列机制(当前选择是 hashids)来散列我们的 ID。
我尝试在实体 ID 字段上使用 @JsonSerializer 和 @JsonDeserializer 映射。但这仅在正文中包含 ID 时生效,对 URL 路径中的 ID 没有影响。
是否有可能做到这一点,例如像 ID 翻译 SPI 之类的东西?
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 库的提示,尤其是这个,将不胜感激!
python - python生成随机优惠券代码的缺点
我正在尝试使用以下代码生成随机优惠券代码。我正在使用Hashids pip 包来实现这一点
寻找以下代码的缺点?