【问题标题】:Generating Unique Invoice tracking in dot net在点网中生成唯一发票跟踪
【发布时间】:2015-09-01 05:49:37
【问题描述】:

我需要生成一个长度只有 10 位的唯一跟踪号。

我在 google 上搜索了 stackoverflow 中唯一有用的文章 Generating unique tracking numbers

但这不是点网代码。我试图找到一种方法来编写此代码的 dot net 等价物,但我做不到。

>>> int(hashlib.sha256(str(1) + "!salt!").hexdigest()[:13], 16)
1269883740611281
>>> int(hashlib.sha256(str(2) + "!salt!").hexdigest()[:13], 16)
3655373802716929

谁能帮帮我?

【问题讨论】:

  • 只有 10 位数字。伟大的。给你:1.000.000.000 - 9.999.999.999。享受吧。
  • 您所说的 GUID 是什么意思。GUID 不适用于发票跟踪号。
  • 那你为什么不存储当前的发票跟踪号,然后从 1.000.000.000 开始,加 1 到 9.999.999.999。愚蠢,这些都是 10 位数字。跨度>
  • 3655373802716929 和 1269883740611281 是不可预测的。

标签: asp.net-mvc cryptography tracking salt saltedhash


【解决方案1】:

我不知道您在那里使用的代码为什么使用哈希。哈希值不是唯一的。哈希在这里似乎被误用作随机数生成器。而是直接使用 RNG:

new Random().Next(1000 * 1000 *1000, 1000 * 1000 *1000 * 10).ToString()

您可以使用网络搜索来找到一种强大的加密方式来生成该范围内的随机数。

您也可以使用字母来获得更多可能的跟踪代码。

【讨论】:

    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多