webForumDet fria alternativet

Kontokorts verifiering

Datasäkerhet

2 svar · 254 visningar · startad av AG

Medlem sedan mars 20001 266 inlägg
Frågan#1

Kanske fel forum, men chansen är nog störst här.

Laste nånstans att man kan verifiera om ett kontokors-nummer stämmer genom att verifiera det mot utgående datumet, och typ av kort. Nån som vet närmare hur detta fungerar?

Andreas

Medlem sedan okt. 2000885 inlägg
#2

Det finns kreditkorts-veriferar-program. Jag har haft ett sånt en gång i tiden.

Kolla på download.com eller nått.

Eller menade du en tjänst på internet :q

------------------
All ovan text i detta inlägg är public domain och får citeras

Medlem sedan apr. 20007 588 inlägg
#3

Här har du en JavaScript-funktion som gör detta. Eftersom det är rätt lamt att ha en funktion som denna på klientsidan så föreslår jag att du konverterar den till t.ex en JavaBöna, det är inga större problem.

function verifyCC(f)
{
  // written by Daniel Amor
  // E-Business Solution Centre
  // Hewlett-Packard GmbH, Germany
  // daniel_amor@hp.com
  // This script is freeware. You can use it in any 
  // application as long as you do mention the author

  // Get relevant information from HTML-FORM
  var cardnumber = f.cardnumber.value;
  var cardtype   = f.cardtype.options[f.cardtype.selectedIndex].value;
  
  // Initialise some temporary variables  
  var result = 0;
  var ccresu = 0;
  var ccOK = true;
  cc = new Array();
  
  // Check if the cardnumber length of Mastercard and Novus are correct!  
  if ((cardtype == "MC") || (cardtype == "NOVUS") || (cardtype == "DIS") || (cardtype == "EC"))
  {
    if (cardnumber.length!=16)
    {
      alert("Your Mastercard, Novus, Discovery or Eurocard number must have 16 digits!");
      ccOK = false;
    }
  }

  // Check if the cardnumber length of Visa is correct!
  if (cardtype == "VISA")
  {
    if ((cardnumber.length!=16) && (cardnumber.length!=13))
    {
      alert("Your Visa card number must have either 13 or 16 digits!");
      ccOK = false;
    }
  }
  
  // Check if the cardnumber length of Mastercard and Novus are correct!  
  if (cardtype == "AMEX")
  {
    if (cardnumber.length!=15)
    {
      alert("Your American Express card number must have 15 digits!");
      ccOK = false;
    }
  }

  if (ccOK == true)
  {
    if (cardnumber.length == 16)
    {
      start  = 0;
      end    = 8;
      offset = 0;
    }
    
    if (cardnumber.length == 13)
    {
      start  = 0;
      end    = 6;
      offset = 1;
    }
   
    if (cardnumber.length == 15)
    {
      start  = 0;
      end    = 7;
      offset = 1;
    }

    for (var i=start;i<end; i++)
    {
      cc[i] = cardnumber[(i*2)+offset] * 2;
      if (cc[i]>9)
      {
        ccresu += Math.floor((cc[i]/10) + (cc[i]%10));
      }
      else
      {
        ccresu += cc[i];
      }
    }
  
    for (var i=start;i<end+offset; i++)
    {
      result += cardnumber[(i*2)+1-offset]-0;
    }
    
    result += ccresu;  
    result = result%10;

    if (result == 0)
    {
      alert("Your credit card information are correct");
    }
    else
    {
      alert("Your credit card information are incorrect");
    }
  }
}

------------------
skaparen av allt som är mjukt och luktar lavendel

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)