如何使用luhn算法计算十六进制IMEI(数字+字符)的校验位?

时间:2016-04-05 12:03:56

标签: luhn

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

Calculation what I did is like -

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

2 个答案:

答案 0 :(得分:0)

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

Luhn test of credit card numbers

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

答案 1 :(得分:0)

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

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