IMEI批量生成(Python)

IMEI为15位数字

格式为AAAAAAAA BBBBBB C

AAAAAAAA 为 Type Allocation Code

BBBBBB 为 Serial Number

C 为 Check Digit

IMEI校验码算法:
(1).将偶数位数字分别乘以2,分别计算个位数和十位数之和
(2).将奇数位数字相加,再加上上一步算得的值
(3).如果得出的数个位是0则校验位为0,否则为10减去个位数

 

如下是批量生成1000笔IMEI数据的Python实现代码.

#!/usr/bin/python 
# -*- coding: UTF-8 -*- 
def genImeiLuhn(digits14): 
    digit15=0 
    for num in range(14): 
        if num%2==0: 
            digit15=digit15+int(digits14[num]) 
        else: 
            digit15=digit15+(int(digits14[num])*2)%10+(int(digits14[num])*2)/10 
    digit15=int(digit15)%10 
    if digit15==0: 
        digits14=digits14+str(digit15) 
    else: 
        digits14=digits14+str(10-digit15) 
    return digits14 
def genMassImei(stat14digits,amount,filepath): 
    fo=open(filepath,"wb") 
    for num in range(amount): 
        imei=genImeiLuhn(stat14digits) 
        stat14digits=str(long(stat14digits)+1) 
        fo.write(imei+"\r\n") 
        print imei 
    fo.flush() 
    fo.close() 
genMassImei("12345678901234",1000,"imei2.txt")

 

posted on 2016-05-30 15:12  -voyage-  阅读(3712)  评论(0编辑  收藏  举报