ตาราง APDU บัตรประจำตัวประชาชน https://github.com/chakphanu/ThaiNationalIDCard/blob/master/APDU.md
Tag: Thailand ID Card
อ่านบัตรประจำตัวประชาชนด้วย C#
ตัวอย่าง code ได้ upload ไว้แล้วที่ https://github.com/chakphanu/ThaiNationalIDCard.Example
ทดสอบอ่านบัตรประจำตัวประชาชน Smart card ด้วย Pyhon
ทยอยขุดของเก่ามาเล่าใหม่
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
#! /usr/bin/env python # Jane. # 2013-11-08 (Y-m-d) # apt-get install pcscd python-pyscard from smartcard.System import readers import binascii # Thailand ID Smartcard # define the APDUs used in this script # Reset SELECT = [0x00, 0xA4, 0x04, 0x00, 0x08, 0xA0, 0x00, 0x00, 0x00, 0x54, 0x48, 0x00, 0x01] # CID COMMAND1 = [0x80, 0xb0, 0x00, 0x04, 0x02, 0x00, 0x0d] COMMAND2 = [0x00, 0xc0, 0x00, 0x00, 0x0d] # Fullname Thai + Eng + BirthDate + Sex COMMAND3 = [0x80, 0xb0, 0x00, 0x11, 0x02, 0x00, 0xd1] COMMAND4 = [0x00, 0xc0, 0x00, 0x00, 0xd1] # Address COMMAND5 = [0x80, 0xb0, 0x15, 0x79, 0x02, 0x00, 0x64] COMMAND6 = [0x00, 0xc0, 0x00, 0x00, 0x64] # issue/expire COMMAND7 = [0x80, 0xb0, 0x01, 0x67, 0x02, 0x00, 0x12] COMMAND8 = [0x00, 0xc0, 0x00, 0x00, 0x12] # get all the available readers r = readers() print "Available readers:", r reader = r[0] print "Using:", reader connection = reader.createConnection() connection.connect() # Reset data, sw1, sw2 = connection.transmit(SELECT) print data print "Select Applet: %02X %02X" % (sw1, sw2) data, sw1, sw2 = connection.transmit(COMMAND1) print data print "Command1: %02X %02X" % (sw1, sw2) # CID data, sw1, sw2 = connection.transmit(COMMAND2) print data for d in data: print chr(d), print print "Command2: %02X %02X" % (sw1, sw2) # Fullname Thai + Eng + BirthDate + Sex data, sw1, sw2 = connection.transmit(COMMAND3) print data print "Command3: %02X %02X" % (sw1, sw2) data, sw1, sw2 = connection.transmit(COMMAND4) print data for d in data: print unicode(chr(d),"tis-620"), print print "Command4: %02X %02X" % (sw1, sw2) # Address data, sw1, sw2 = connection.transmit(COMMAND5) print data print "Command5: %02X %02X" % (sw1, sw2) data, sw1, sw2 = connection.transmit(COMMAND6) print data for d in data: print unicode(chr(d),"tis-620"), print print "Command6: %02X %02X" % (sw1, sw2) # issue/expire data, sw1, sw2 = connection.transmit(COMMAND7) print data print "Command7: %02X %02X" % (sw1, sw2) data, sw1, sw2 = connection.transmit(COMMAND8) print data for d in data: print unicode(chr(d),"tis-620"), print print "Command8: %02X %02X" % (sw1, sw2) |