我正在尝试将多个整数转换为固定长度的哈希值。...到目前为止,到目前为止,我还需要能够读取和解码哈希,然后将我的整数取回来。
为了提供更多背景信息,我正在为查询多个表的API调用生成基于游标的分页。因此,我需要能够将多个表ID混淆成像哈希这样的字符串,然后将其发送到前端。另外,我需要能够接收任何游标哈希,将其解码为多个表ID,然后从该ID开始查询表。
什么是正确的方法?
[如果您认为这是一项安全功能,例如为了防止用户通过增加标识符来枚举表中的行,您可能应该随机生成这些面向用户的哈希并将它们存储在每个表行中。在这种方法中,行将具有较短的数字主键(由于较小的尺寸,通常更适合索引)和面向用户的外部标识符(如果使用UUID,几乎是不可猜测的)。
或者,您可以尝试:
将每个用户存储在会话中时分别为其生成哈希。只要您在哈希和行标识符之间具有1对1的映射关系,就可以使用随机哈希,它们仅对打开会话的用户有效。
使用强对称加密技术(例如AES)对盐值salt + id
进行编码和解码。这将使得更难猜测用于创建哈希的内容。
您当前具有可逆功能的方法听起来像security through obscurity或我变得偏执:)