【问题标题】:How to calculate check digits for a Hexadecimal IMEI (Number+Character) using luhn's algorithm?如何使用 luhn 算法计算十六进制 IMEI(数字+字符)的校验位?
【发布时间】:2016-04-05 12:03:55
【问题描述】:

我想了解逻辑,以便我可以在 java 中实现这个算法。 我想计算有效的十六进制 IMEI 号码的校验位。 例如 - 6C4BFFC0000004 请帮我解决算法。 我试图在谷歌中找到解决方案,但我无法使用这些算法找到正确的答案。

Calculation what I did is like -

但是上面 IMEI 的校验位是 4。我得到了 7。我不知道我哪里出错了。

【问题讨论】:

  • “有效的十六进制 IMEI 号码” 那会是哪个标准?还是您在谈论 MEID 数字?
  • 必须先转换成十进制

标签: luhn


【解决方案1】:

我也有同样的需求,我通过使用以下网站上解释的逻辑找到了解决方案:

Luhn test of credit card numbers

我根据 C 示例编写了一个函数来确定最后一位数字。在 Java 中的行为将是相同的。

【讨论】:

    【解决方案2】:

    实际上,您不需要先转换为十进制。如果您有一个十六进制的“IMEI”,它实际上是一个 MEID。 IMEI 是 MEID 的仅十进制子集。实际上有一项关于如何计算基于十六进制的 MEID 的 Luhn 的专利。请参阅以下权利要求 0113 至 0119:

    https://patentimages.storage.googleapis.com/74/63/03/3fb507952c7ccf/US20080194223A1.pdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 2017-08-24
      • 1970-01-01
      • 2023-03-30
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多