Latest 100 public snipts »
hongster's
snipts » nirc
showing 1-1 of 1 snipts for nirc
-
∞ Singapore NIRC checksum.
def sgChecksum(uin): uin = uin.upper() if not re.match('^[FGST]\d{7}[A-Z]$', uin): return False weight = [2, 7, 6, 5, 4, 3, 2] st = ['J', 'Z', 'I', 'H', 'G', 'F', 'E', 'D', 'C', 'B', 'A'] fg = ['X', 'W', 'U', 'T', 'R', 'Q', 'P', 'N', 'M', 'L', 'K'] sum = 0 for i in xrange(7): sum += weight[i] * int(uin[i+1]) if uin[0]=='F': sum %= 11 if not uin[8]==fg[sum]: return False elif uin[0]=='G': sum = (sum + 4) % 11 if not uin[8]==fg[sum]: return False elif uin[0]=='S': sum %= 11 if not uin[8]==st[sum]: return False elif uin[0]=='T': sum = (sum + 4) % 11 if not uin[8]==st[sum]: return False return True


