【问题标题】:How to generate token which is a generalization of multiple tokens?如何生成作为多个令牌泛化的令牌?
【发布时间】:2015-06-12 10:45:06
【问题描述】:

我需要一种允许从令牌列表生成令牌(字母数字)的算法或逻辑。 生成的令牌必须允许我们验证给定的令牌是否是它的一部分。

示例: 考虑一个场景,你有 4 个令牌,如下所示

 Input Code :  NFU122JKMO,MUE4UJ83RT,MA783FHNZS,ODNJU345KN.(assume)

我需要生成一个单独的代码,它是上述所有内容的组合。生成的代码必须是字母数字,如下所示

Generated Code :   NIDU8934DF(assume).

现在,我需要验证输入代码是否是生成代码的子集。

所以它必须返回一个布尔值,如 true 或 false。

具体来说,我需要生成一个包含所有输入标记信息的代码。

我搜索了加密和解密算法,不适合我的需要。 请分享您的想法和算法。

提前致谢。

【问题讨论】:

  • 基本上你想要一个哈希。听说过 MD5 吗?
  • @Kryptos 对不起,我是新手。我怀疑,是否可以检查输入代码是否是生成代码的一部分?
  • 这个操作是否安全?例如,任何人都可以在知道输入令牌的情况下生成这样的令牌吗?任何人都可以从此类令牌中找出输入令牌吗?
  • @divanov 。就我而言,我需要生成那种令牌。我需要一个函数来生成那种令牌和一个函数来验证输入令牌是否是生成令牌的一部分。
  • 这叫做串联,甚至不需要加密。

标签: algorithm encryption cryptography


【解决方案1】:

你想要的是Bloom Filter。您以类似于散列的方式对其进行建模(它实际上不是散列)。您还必须根据列表中预期元素的数量对其进行微调。由于它是概率性的,因此您不能 100% 确定假定的子集是实际子集。

【讨论】:

  • 这可能不适用于 Obuli 的要求,因为:查询返回“可能在集合中”或“绝对不在集合中”。很遗憾我们不知道这些要求。
  • 是的,由于这种方法是概率性的,我无法从中得到确切的结果。
  • 如果您希望结果准确,您需要设计一种方法将您的输入映射到 2 的幂数。如果您将它们组合在一起,您将得到您的令牌至少与输入集 sizein 位一样长。为了安全起见,它必须是两倍大。似乎没有办法满足这些要求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多