Credit Card Number is a Java library that can provide details of a bank issued credit card number.
The goal of this project is to use publicly and freely available documentation to create a reliable Java library to provide information about credit card numbers.
All classes are immutable and thread-safe. Secure data follows standards in the
Java Cryptography Architecture (JCA) Reference Guide.
The standard toString()
function
formats data in a readable form. Validity is enforced by JUnit tests.
Java 6 or newer is required. This library deliberately supports Java 6, to make it usable in Android apps. In order to be Java 8 ready, Credit Card Number depends on Stephen Colebourne's ThreeTen backport project, a port of JSR 310 to Java 6.
Some resources consulted are:
- Bank card number
- How do you detect Credit card type based on number?
- Finding or Verifying Credit Card Numbers
- Major Industry Identifier
- Luhn Algorithm
- Test Credit Card Account Numbers
- MasterCard BIN Range Coming October 2016
- Java Cryptography Architecture (JCA) Reference Guide
You can download the jar on the Maven Central Repository.
To use Credit Card Number in your Maven build, include the following dependency. No repositories references are needed, since the jars are in the Maven Central Repository.
<dependency>
<groupId>us.fatehi</groupId>
<artifactId>credit_card_number</artifactId>
<version>2.01.02</version>
</dependency>
To get bank card information, use code like:
AccountNumber pan = new AccountNumber("5266-0922-0141-6174");
ExpirationDate expiration = new ExpirationDate(2015, 4);
Name name = new Name("Sualeh", "Fatehi");
BankCard card = new BankCard(pan, expiration, name);
System.out.println(card);
and you will get this output:
Bank Card Information:
Raw Account Number: 5266-0922-0141-6174
Primary Account Number: 5266092201416174
Major Industry Identifier: 5 - Banking and financial
Issuer Identification Number: 526609
Card Brand: MasterCard
Last Four Digits: 6174
Passes Luhn Check? Yes
Is Primary Account Number Valid? Yes
Expiration Date: 1504
Is Expired: No
Name: Sualeh Fatehi
If you need the account number information, but want to be secure by not storing the actual primary account number in memory, you can use code like:
AccountNumber pan = new AccountNumber("5266-0922-0141-6174");
pan.dispose();
System.out.println(pan);
and you will get this output:
MasterCard-6174
You can use code like:
AccountNumber pan = new AccountNumber("५२६६ ०९२२ ०१४१ ६१७४");
System.out.println(pan);
and you will get this output:
5266092201416174