def initCard(): log("Request to init new card") card = None while (card == None or card == 0): card = pn532.read() if (pn532.format() != 1): log("Failed to format card") return None newhash = hashlib.sha256("%s %s %s" % (card[0],config.hashSecret,str(time.time()))).digest() status = pn532.write(newhash) if (status != 0): log("Write failed: %s",(status)) return None retries = 0 while(True): card2 = pn532.read() if ((card2[0] == card[0]) & (card2[1]==newhash)): break retries = retries + 1 if (retries > 5): break if ((card2[0] != card[0]) | (card2[1]!=newhash)): log("Verify failed") return None log ("New card written serial=%s : hash=%s" % (card[0],binascii.hexlify(newhash))) return(card[0],binascii.hexlify(newhash))
#!/usr/bin/python import pn532 import hashlib import binascii import time pn532.init() card = None while (card == None or card == 0): card = pn532.read() if (pn532.format() != 1): print "Failed to format" exit() newhash = hashlib.sha256(card[0]+"newSecretValue"+time.time()).digest() #print "New hash = ",binascii.hexlify(newhash) #print "Writing card" #newhash = "12345678901234567890123456789012" status = pn532.write(newhash) if (status != 0): print "Write failed:\n",status card2 = pn532.read() if (card2 == card): #Store in database print "Success" #print "Starting Value" #print pn532.read() #print "Waiting for card..." #card = None