checksumme der imei errechnen

nico_arndt

Mitglied
Hallo Leute,

ich benötige ein Skript um die Checksumme (Prüfziffer) für Handy IMEIs zu berechnen, leider bin ich hier mit meinem Latein am Ende, wäre für ein paar Codeschnipsel sehr dankbar.

Die Beispiel-Rechnung erfolgt mit folgender, frei erfundener IMEI:

Beispiel-IMEI: 49 06 49 40 31 41 72

Jede 2. Ziffer verdoppeln (beginnend bei 2.):

9, 6, 9, 0, 1, 1, 2

verdoppelt:

18, 12, 18, 0, 2, 2, 4

Alle einzelnen Ziffern addieren:

(1 + 8) + (1 + 2) + (1 + 8) + 0 + 2 + 2 + 4 =

28

Jede 2. Ziffer addieren (beginnend bei 1.):

4 + 0 + 4 + 4 + 3 + 4 + 7 =

27

Beide Ergebnisse addieren:

28 + 27 =

55

Ergebnis modular 10*:

55 mod 10 = 5, Rest =

5

* 10 so oft subtrahieren, wie möglich

Differenz zu 10:

10 - 5 =

5

Die erechnet Checksumme beträgt 5.



Vielen Dank und ein schönes Wochenende
 
Sollte als Ansatz reichen:
PHP:
<?
  $text = "49 06 49 40 31 41 72";
  $teile = explode(" ", $text);

  $res1 = 0;
  $res2 = 0;

  for($i=0;$i<=count($teile);$i++)
  {
    $value = $teile[$i];
    
    // Jede 1. Ziffer addieren
    $res2 = $res2 + substr($value, 0, 1);

    // Jede 2. Ziffer * 2
    $value = substr($value, 1, 1) * 2;

    // wenn möglich Quersummen bilden
    if(strlen($value) > 1)
      $value = substr($value, 0, 1) + substr($value, 1, 1);

    // Die einzelnen Ziffern addieren
    $res1 = $res1 + $value;
  }

  $res = $res1 + $res2;
  // Ergebnis modular 10
  $res = $res%10;

  // Differenz zwischen 10 und Ergebnis
  echo 10-$res;
?>
 
Zurück