def replace(request, id): name = _("Replace an issued Enumeration number with a new number.") e = get_object_or_404(Enumeration, id=id) if e.has_ever_been_active: #create a candidate eumeration eight_digits = random.randrange(10000000, 19999999) prefixed_eight_digits = "%s%s" % (settings.LUHN_PREFIX, eight_digits) checkdigit = generate(prefixed_eight_digits) new_number = "%s%s" % (eight_digits, checkdigit) while Enumeration.objects.filter(number=new_number).count() > 0: eight_digits = random.randrange(10000000, 19999999) prefixed_eight_digits = "%s%s" % (settings.LUHN_PREFIX, eight_digits) checkdigit = generate(prefixed_eight_digits) new_number = "%s%s" % (eight_digits, checkdigit) #create a message msg = "The number %s has been replaced with %s" % (e.number, new_number) #Append the old number to the old_numbers field. e.old_numbers = "%s, %s" % (e.old_numbers, e.number) #Remove any command or whitespace from the begining if e.old_numbers.startswith(","): e.old_numbers = e.old_numbers[1:] if e.old_numbers.startswith(" "): e.old_numbers = e.old_numbers[1:] #Set the new number e.number = new_number #flag this recors as having been replaced e.is_number_replaced = True e.last_updated_ip = request.META['REMOTE_ADDR'] e.save() msg = "A new enumeration number %s was assigned." % (e.number) #Create an event Event.objects.create(enumeration=e, event_type="REENUMERATION", note=msg, details=msg, body=RENUMBERED_BODY, subject=RENUMBERED_SUBJECT) reversion.set_user(request.user) rmsg = "Replacement: %s", (msg) reversion.set_comment(rmsg) messages.success(request, msg) else: messages.info( request, "This record has never been active so a replacement is not allowed." ) return HttpResponseRedirect(reverse('report_index'))
def replace(request, id): name = _("Replace an issued Enumeration number with a new number.") e = get_object_or_404(Enumeration, id=id) if e.has_ever_been_active: #create a candidate eumeration eight_digits = random.randrange(10000000,19999999) prefixed_eight_digits = "%s%s" % (settings.LUHN_PREFIX, eight_digits) checkdigit = generate(prefixed_eight_digits) new_number = "%s%s" % (eight_digits, checkdigit) while Enumeration.objects.filter(number=new_number).count()>0: eight_digits = random.randrange(10000000,19999999) prefixed_eight_digits = "%s%s" % (settings.LUHN_PREFIX, eight_digits) checkdigit = generate(prefixed_eight_digits) new_number = "%s%s" % (eight_digits, checkdigit) #create a message msg = "The number %s has been replaced with %s" % (e.number, new_number) #Append the old number to the old_numbers field. e.old_numbers = "%s, %s" % (e.old_numbers, e.number) #Remove any command or whitespace from the begining if e.old_numbers.startswith(","): e.old_numbers = e.old_numbers[1:] if e.old_numbers.startswith(" "): e.old_numbers = e.old_numbers[1:] #Set the new number e.number = new_number #flag this recors as having been replaced e.is_number_replaced = True e.last_updated_ip=request.META['REMOTE_ADDR'] e.save() msg = "A new enumeration number %s was assigned." % (e.number) #Create an event Event.objects.create(enumeration=e, event_type="REENUMERATION", note= msg, details = msg, body=RENUMBERED_BODY, subject = RENUMBERED_SUBJECT) reversion.set_user(request.user) rmsg = "Replacement: %s", (msg) reversion.set_comment(rmsg) messages.success(request, msg) else: messages.info(request, "This record has never been active so a replacement is not allowed.") return HttpResponseRedirect(reverse('report_index'))
def generate_pan(pan_len=16): prefix = '500000' # not to mess with real world cards base = prefix + str( random.randint(10**(pan_len - len(prefix) - 2), 10**(pan_len - len(prefix) - 1) - 1)) pan = base + baluhn.generate(base) assert baluhn.verify(pan) #print "pan=%s" % pan return pan
def generate_pan(pan_len=16): prefix = '500000' # not to mess with real world cards base = prefix + str(random.randint( 10 ** (pan_len - len(prefix) - 2), 10 ** (pan_len - len(prefix) - 1) - 1)) pan = base + baluhn.generate(base) assert baluhn.verify(pan) #print "pan=%s" % pan return pan
def add_luhn(s): digits = filter(lambda c: c.isdigit(), s) # our payload must have an even number of digits otherwise the serve computes # a different checksum than us if len(digits) % 2 == 0: s += '0' digits += '0' return quote(s + generate(''.join(digits)))
def add_luhn(s): digits = filter(lambda c: c.isdigit(), s) # our payload must have an even number of digits otherwise the serve computes # a different checksum than us #print("rulsan", digits) #if len(digits) % 2 == 0: # s += '0' # digits += '0' return urllib.parse.quote(s + generate(''.join(digits)))
def body_1(start, end,event_time): #Body data= [['No.', 'Name', 'Cat II', 'Cat III']] for i in range(start,end): #Generate Transaction Id transaction_id = str(event_id)+event_date+event_time+str(i) transaction_id = filter(str.isalnum, str(transaction_id)) luhn = generate(transaction_id) transaction_id = str(transaction_id)+luhn data.append([str(i)+','+luhn,'','','']) ##### tstyle = [('INNERGRID', (0,0), (-1,-1), 0.25, colors.black), ('BOX', (0,0), (-1,-1), 0.25, colors.black),] t = Table(data, colWidths=(3*cm, 4*cm, 6*cm, 6*cm)) t.setStyle(TableStyle(tstyle)) t.wrapOn(c, 1*cm, 0*cm) t.drawOn(c, 1*cm, 1*cm) c.showPage()
#!/usr/bin/env python from baluhn import generate, verify import os import sys value = sys.argv[1] print generate(value)