I have the following numbers. It is a 14 digit identification number. The first 13 digits  (counting from left) are the number itself, the 14th (the least digit) digit is an integrity check code. I tried many combinations but failed to get the formula which this integrity check is done.decimal, 14 dig.| hexadecimal  | binary (grouped)--------------------------------------//effect of the least (decimal) digit2840115110085 6 | 19d4a885c7b8 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1101 11002840115110086 4 | 19d4a885c7c0 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1110 00002840115110087 2 | 19d4a885c7c8 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1110 01002840115110088 1 | 19d4a885c7d1 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1110 10002840115110089 9 | 19d4a885c7e3 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1111 0001//effect of changing 7th digit from left.2840113000000 2 | 19d4a743ce82 | 1100 1110 1010 0101 0011 1010 0001 1110 0111 0100 00012840114000000 1 | 19d4a7dc6501 | 1100 1110 1010 0101 0011 1110 1110 0011 0010 1000 00002840115000000 9 | 19d4a874fb89 | 1100 1110 1010 0101 0100 0011 1010 0111 1101 1100 01002840116000000 7 | 19d4a90d9207 | 1100 1110 1010 0101 0100 1000 0110 1100 1001 0000 00112840117000000 5 | 19d4a9a62885 | 1100 1110 1010 0101 0100 1101 0011 0001 0100 0100 00102840118000000 3 | 19d4aa3ebf03 | 1100 1110 1010 0101 0101 0001 1111 0101 1111 1000 00012840119000000 1 | 19d4aad75581 | 1100 1110 1010 0101 0101 0110 1011 1010 1010 1100 00002840110000000 8 | 19d4a57a0b08 | 1100 1110 1010 0101 0010 1011 1101 0000 0101 1000 0100Here's a little Python script which was used to produce above listing:nums = [28401151100856, 28401151100864, 28401151100872, 28401151100881,28401151100899, 28401130000002, 28401140000001, 28401150000009,28401160000007, 28401170000005, 28401180000003, 28401190000001,28401100000008,]def _2fmtdecimal(x):        tmp = str(x)        return tmp[0:13] + ' ' + tmp[13:]def _2fmtbinary(x):        tmp = bin(x)[2:]        tmp2 = ''        for i,j,k,l in zip(tmp[::4], tmp[1::4], tmp[2::4], tmp[3::4]):                tmp2 += i+j+k+l + ' '        return tmp2for i in nums:        print %s | %s | %s % (_2fmtdecimal(i), hex(i), _2fmtbinary(i))
What is the integrity check used?
decryption