ISO 7812

ISO 7812, pertama kali diterbitkan oleh ISO International Organization for Standardization pada tahun 1989, adalah mengenai pengaturan standar internasional pita magnetik kartu indentitas, kartu-2 akses, kartu ATM, dan kartu kredit. ISO 7812 disediakan dalam dua bagian, ISO 7812-1 dan ISO 7812-2. masing-2 berisikan spesifikasi lengkap dimana dapat terpakai pada penggunaannya. penomoran kartu kredit adalah bagian dari penomoran ISO 7812.

Pada ISO 7812 penggunaan satu digit untuk MII major industry identifier, enam digit untuk IIN issuer identifier number, disusul rangkaian angka dari sebuah nomor rekening, dan satu digit kemudian dipakai untuk pengontroan. sebagian besar industri pengindentifikasi merupakan bagian dari penerbit nomor pengindentifikasi, dan besaran jumlah angka tidak lebih dari 19 digit.

Major industry identifier 
MII major industry identifier pengaturan pada digit pertama dari penomoran menurut ISO 7812 adalah pernyataan tujuan penggunaan atau pemakaian dari kartu adalah sbb.:

umpama [MII] major industry identifier adalah angka 9 maka tiga angka kemudian adalah menerangkan asal negara dengan pemakaian ketentuan dari ISO 3166-1 yang terdiri dari tiga angka.

Issuer Identifier Number 
beberapa contoh issuer identifiers dibawah ini

Nomor rekening 

Keberadaan nomor rekening berjumlah maksimum 7 angka digit berada pada urutan kedua dari belakang setelah digit pengkontrolan.

Digit pengkontrolan 
Angka digit pengkontrolan check digit berada pada urutan paling akhir dan dihitung berdasarkan perumusan Algoritme Luhn.

'''''Java Source Code'''''
//---------------------------------------------------------
// Checks for valid credit card number using Luhn algorithm
//---------------------------------------------------------

public abstract class LuhnCheck {

  //--------------------------------
  // Filter out non-digit characters
  //--------------------------------

  private static String getDigitsOnly (String s) {
    StringBuffer digitsOnly = new StringBuffer ();
    char c;
    for (int i = 0; i < s.length (); i++) {
      c = s.charAt (i);
      if (Character.isDigit (c)) {
        digitsOnly.append (c);
      }
    }
    return digitsOnly.toString ();
  }

  //-------------------
  // Perform Luhn check
  //-------------------

  public static boolean isValid (String cardNumber) {
    String digitsOnly = getDigitsOnly (cardNumber);
    int sum = 0;
    int digit = 0;
    int addend = 0;
    boolean timesTwo = false;

    for (int i = digitsOnly.length () - 1; i >= 0; i--) {
      digit = Integer.parseInt (digitsOnly.substring (i, i + 1));
      if (timesTwo) {
        addend = digit * 2;
        if (addend > 9) {
          addend -= 9;
        }
      }
      else {
        addend = digit;
      }
      sum += addend;
      timesTwo = !timesTwo;
    }

    int modulus = sum % 10;
    return modulus == 0;

  }

  //-----
  // Test
  //-----

Referensi

Lihat pula 
 Electronic money

Pranala luar 
 Biography on the American Society for Information Science and Technology's Web site 
 Notes compiled by Susan K. Soy on "H.P. Luhn and Automatic Indexing" 
 Penerapan Standar ISO/IEC 7812-Issuer Identifikasi Number
 Badan Standardisasi Nasional

07812