gpt4 book ai didi

algorithm - 生成唯一的固定长度字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:25 24 4
gpt4 key购买 nike

我需要生成指定长度的唯一非连续 ID。我查看了 Feistel 密码的一些实现,但我不明白为什么选择特定的数字以及它们如何影响输出。基本上,我需要一个函数 int pseudo_encrypt(int seed, int max) 为每个小于最大值的种子生成小于最大值的唯一结果。

UPD:事实证明它被称为“格式保留加密”。我试过 AES CTR 模式,但问题是“长度”是以字节为单位指定的。因此,如果 max 大于 255,则密码将产生 0 到 65535 之间的结果。如何处理这个问题?

最佳答案

使用密码是正确的。由于密码是可逆的,每个种子号都将加密为唯一的加密值,并且可以解密回原始值。

要生成所需的唯一数字序列,您可以根据需要为种子 0、1、2、3 ... 加密任意数量的唯一数字。

您的主要问题可能是您需要的最大值。对于 max = (2^64) - 1 然后使用固定 key 在 ECB 模式下使用 DES。对于 max = (2^128) - 1 在 ECB 模式下使用带有固定 key 的 AES。不同的 key 给出了从明文到密文的不同映射,因此您需要继续使用相同的 key 以避免重复。

如果您的 max 尺寸不同,那么您将不得不做更多的工作。基本上,您需要一个 block 大小与您的最大值相同的 block 密码,以位为单位。您可以使用适当的 block 大小构建自己的 Feistel 密码,或者您可以使用 Hasty Pudding cipher ,它允许您想要的任何合理的 block 大小。

关于algorithm - 生成唯一的固定长度字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com