PHP Uploader - ZeroByte.ID
Linux quality-cubes-1.localdomain 5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020 x86_64
入秋以来的第一次造福人类-手机imei校验-luhn算法生成 – 看一个世界
未分类

入秋以来的第一次造福人类-手机imei校验-luhn算法生成

IMEI,由15位组成:

1. 前6位是“型号核准号码”,一般代表机型。其中前两位又是分配机构标识,是授2权IMEI码分配机构的代码,如86为中国
2. 接着的2位数是“最后装配号”,一般代表产地。
3. 之后的6位数为“串号”,一般代表生产顺序号。
4. 最后1位数为前14位通过Luhn算法产生的检验码

举例:我手机的IMEI码为
867401042192296
867401042192304
可以看出我手机应该是生产的第219229部,看似找不到规律的第15位数,是前14位数通过Luhn算法得出的校验位,用于校验该IMEI号段是否合法。从校验位开始,从右往左,偶数位乘2,然后将两位数字的个位与十位相加,把得到的数字加在一起,再与从右往左的单数位的数相加,将所有数字的和取模10,再用10去减,得到校验位。
拿我手机举例通过前14位算出第15位,86740104219229
29 + 22 + 21 + 24 + 21 + 24 + 2*6 + 2 + 9 + 2 + 0 + 0 + 7 + 8 ==>
1+8 + 4 + 2 + 8 + 2 + 8 + 1+2 + 28 == 64
10-64%10==6
所以我的第15位合法IMEI是”6″ ,867401042192296

入秋以来…我想起自己还要造福人类,就不喝奶茶了。为大家带来了免费工具
ꉂꉂ◟(˃᷄ꇴ˂᷅ ૂ๑)༡л̵ʱªʱª✧
下载地址:https://www.zhoupenghao.com/IMEI.exe
使用浏览器打开

到了重要环节,Code Show~~~

#Coding:utf-8
#Author:Zhou
#Time:2020-09-25 下午 20:08
#File:IMEI.py
#Project:py

import os
MEID = str(input("请输入14位起始IMEI码:"))
iNumber=int(input("请输入生产数量:"))
number=0
for number in range (0,iNumber):
b1 = 0
b2 = 0
singular = MEID[::-2]
for a in range(0, len(singular)):
if len(str(int(singular[a]) * 2)) == 2:
a1 = int(singular[a]) * 2 - 9
b1 += a1
elif len(str(int(singular[a]) * 2)) == 1:
a2 = int(singular[a]) * 2
b2 += a2

even_numbers = MEID[::2]
s = 0
for a in range(0, len(even_numbers)):
b = even_numbers[a]
s += int(even_numbers[a])

Total = s + b2 + b1
a = 0
while str(Total)[1] != "0":
Total += 1
a += 1
if str(Total)[1] == "0":
break

def IMEI(MEID, a):
imei = MEID + str(a)
print(imei)
w = open("D://IMEI.txt", mode='a+')
w.write(imei)
w.write('\r')
IMEI(MEID,a)
MEID=str(int(MEID)+1)
number+=1

if __name__ =="__main__":
print("IMEI已生成于:D://IMEI.txt\n")
os.system('pause')

精神小伙
我还没有学会写个人说明!
查看“精神小伙”的所有文章 →

发表评论

电子邮件地址不会被公开。

相关推荐