【问题标题】:Numerical Obscurification数值模糊
【发布时间】:2016-01-18 20:12:14
【问题描述】:

类似于 C# 中的这个问题:User ID obfuscation

我正在VBA 中寻找解决方案,以通过 encoding 方法隐藏长值,并且我还需要能够decode 生成的数字也是。

【问题讨论】:

  • 为什么不使用 guid?另外,您在什么情况下这样做?你肯定不能用 VBA 编写网络应用程序吗?!?!?!
  • 在这里检查这个问题:stackoverflow.com/q/8047094/5090027 虽然它没有一个公认的答案,但提出了很多观点,它似乎刚刚被 OP 放弃了。
  • @Jeremy 不,不适合网络应用!不能用更糟糕的语言了!我正在寻找一个(已经存在的) id 字段,它是一个整数,因此很难转移到一个 guid。
  • @Gareth 在什么类型的应用程序中?擅长?访问?
  • @Jeremy Excel 抱歉。

标签: vba long-integer security-by-obscurity


【解决方案1】:

我同意引用文章中所述的答案:User ID obfuscation

为什么不添加 GUID 和查找表?

【讨论】:

  • 根据上面的评论,这是一个包含整数 id 的现有表,我希望隐藏它。
  • 我认为这个问题太宽泛而无法回答 - 如果您假设表可以保存 MAX_INT 并且表中可以有 MAX_INT 值,那么您所能做的就是将 1 个值映射到另一个值.如果您有 MAX_INT 值,则没有公式可以用于有人可以输入与某些内容不匹配的数字。换句话说,如果您可以存储 10 个值,那么您最多可以将每个值映射到不同的数字 - 但 1 - 10 将始终对某种形式的数据产生有效的命中。
  • 答不上来怎么可能太宽泛了?
  • 你从来没有说过它是什么类型的数据,或者你有多少。如果它是一个用户 ID,并且您在系统中有 10 个用户,并且只希望获得 20 个用户,那么您可以使用一个将 100 的值分布在 MAX_INT 上的公式来掩盖它。 MAX_INT 也是 1MM,并且您最多有 100 个用户,您可以将这些值乘以 10K。如果每 10K 平均分配 1 个。这可能正是您正在寻找的,或者它可能是一种过于“弱”的混淆。
  • 关于您要尝试做什么、必须使用多少空间以及如果命中错误会发生什么,有很多变数,以完全回答您的问题。
猜你喜欢
  • 1970-01-01
  • 2012-08-23
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 2021-11-05
  • 1970-01-01
相关资源
最近更新 更多