Snippets

Zhiwei Li ICCID check

Created by Zhiwei Li
def luhn_checksum(card_number):
    def digits_of(n):
        return [int(d) for d in str(n)]
    digits = digits_of(card_number)
    odd_digits = digits[-1::-2]
    even_digits = digits[-2::-2]
    checksum = 0
    checksum += sum(odd_digits)
    for d in even_digits:
        
        checksum += sum(digits_of(d*2))
    return checksum % 10
    
def is_luhn_valid(card_number):
    return luhn_checksum(card_number) == 0
    
def calculate_luhn(partial_card_number):
    check_digit = luhn_checksum(int(partial_card_number) * 10)
    return check_digit if check_digit == 0 else 10 - check_digit
    
#print(calculate_luhn(iccid)) 
if not is_luhn_valid(iccid):
    exit("invalid iccid")

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.