gpt4 book ai didi

algorithm - 可逆地洗牌一组一百万个数字

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

我需要发行一系列 {1, 2, 3, 4 …} 票,这些票是(至少表面上)随机数 {10,934, 3,453,867, 122, 4,386,564 …}。当返回时,我必须能够计算出它们的原始索引(例如 122 → 3。)

换句话说,我需要一个看似随机的排列 p在具有逆排列的区间 [1 … N] 上 p<sup>-1</sup> . N 约为 107

原因是:

  • 这是一个密码:收到票时,应该不容易猜猜以前发行的门票。
  • 门票应该是可以记下来的短字母数字字符串。
  • 我想避免记录每张开出的罚单。

最佳答案

我会在计数器模式下使用一些众所周知的密码(例如 DES)。

对于正常用途,DES 通常被认为相当不完善,但它似乎相当适合您的需求,并且比大多数较新的算法具有更小的 block 大小。对您来说,这意味着它会产生较小的结果(64 位,如果没记错的话)。将其转换为可读字符(例如 base 64)后,您最终会得到大约 10 个字符。

要取回原始号码,您只需使用您的 key 解密即可。

结果看起来相当随机——基本上,唯一已知的将它们重新排序的方法是破坏 DES,这可以做到(已经完成),但这样做的资源非常重要。

如果您确实需要比这更好的安全性,您可以使用 AES 之类的东西而不是 DES(以产生更长的“ key ”值为代价)。

关于algorithm - 可逆地洗牌一组一百万个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34443212/

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