Én voltam az LG kódkalkulátor gazdája, amely bekerült az összes ingyenes gyűjtőkalkulátorba. Ehhez nem volt másra szükség, mint az algók beszerzésére és táblakorrekciókra. Azért említem külön is az LG Calcot, mert ez volt az egyik alapköve a bizalomépítésnek. Ettől aztán olyannyira underground figura lettem, hogy a legvadabb helyeken is tárt karokkal fogadtak és persze hivatkoztak rám mindenhol. Tudod, amikor az ember ilyesmikről beszél, akkor piszkosul bonyolult dolgokra gondol mindenki. Pedig nem kellene. Íme az LG Calcot mozgató algoritmus. Kicsit kipofoztam, hogy könnyebben eligazodj rajta. Eredetileg egy három dimenziós tömböt képeztek, de így egyszerűbben értelmezhető a folyamat.
BEMENET (IMEI): xxxxxx-xx-xx0123-x
A checkdigit előtti 4 szám, amelyet a
teljes IMEI számból kinyerünk és az
$imei változót feltöltjük vele.
// LG B1200 / M1200
$ncksor[0] = Array (8,0,2,9,4,2,1,0);
$ncksor[1] = Array (9,1,3,8,5,3,0,1);
$ncksor[2] = Array (0,8,4,1,6,4,3,8);
$ncksor[3] = Array (1,9,5,0,7,5,2,9);
$ncksor[4] = Array (2,4,8,3,0,8,5,4);
$ncksor[5] = Array (3,5,9,2,1,9,4,5);
$ncksor[6] = Array (4,2,0,5,2,0,7,2);
$ncksor[7] = Array (5,3,1,4,3,1,6,3);
$ncksor[8] = Array (0,2,4,1,2,4,9,2);
$ncksor[9] = Array (1,3,5,0,3,5,8,3);
// LG B1300 / 1300
$ncksor[0] = Array (0,0,0,0,1,7,0,9);
$ncksor[1] = Array (1,1,1,1,0,6,1,8);
$ncksor[2] = Array (2,2,2,2,3,5,2,1);
$ncksor[3] = Array (3,3,3,3,2,4,3,0);
$ncksor[4] = Array (4,4,4,4,5,3,5,4);
$ncksor[5] = Array (5,5,5,5,4,2,5,2);
$ncksor[6] = Array (6,6,6,6,7,1,6,5);
$ncksor[7] = Array (7,7,7,7,6,0,7,4);
$ncksor[8] = Array (8,8,8,8,9,5,8,1);
$ncksor[9] = Array (9,9,9,9,8,4,9,0);
// LG G510
$ncksor[0] = Array (0,5,4,1,3,9,9,5);
$ncksor[1] = Array (1,4,5,0,2,8,8,4);
$ncksor[2] = Array (8,3,2,9,5,1,1,7);
$ncksor[3] = Array (9,2,3,8,4,0,0,6);
$ncksor[4] = Array (4,1,0,5,9,3,3,1);
$ncksor[5] = Array (5,0,1,4,8,2,2,0);
$ncksor[6] = Array (2,9,8,3,1,5,5,3);
$ncksor[7] = Array (3,8,9,2,0,4,4,2);
$ncksor[8] = Array (2,7,6,3,5,1,1,3);
$ncksor[9] = Array (3,6,7,2,4,0,0,2);
// LG 520
$ncksor[0] = Array (0,5,4,1,3,9,3,8);
$ncksor[1] = Array (1,4,5,0,2,8,2,9);
$ncksor[2] = Array (8,3,2,9,5,1,5,0);
$ncksor[3] = Array (9,2,3,8,4,0,4,1);
$ncksor[4] = Array (4,1,0,5,9,3,9,2);
$ncksor[5] = Array (5,0,1,4,8,2,8,3);
$ncksor[6] = Array (2,6,8,2,4,5,1,4);
$ncksor[7] = Array (3,8,9,2,0,4,0,5);
$ncksor[8] = Array (2,7,6,3,5,1,5,0);
$ncksor[9] = Array (3,8,7,2,4,0,4,1);
// LG 510W
$ncksor[0] = Array (0,5,4,1,3,9,3,8);
$ncksor[1] = Array (1,4,5,0,2,8,2,9);
$ncksor[2] = Array (8,3,2,9,5,1,5,0);
$ncksor[3] = Array (9,2,3,8,4,0,4,1);
$ncksor[4] = Array (4,1,0,5,9,3,9,2);
$ncksor[5] = Array (5,0,1,4,8,2,8,3);
$ncksor[6] = Array (2,6,8,3,1,5,1,4);
$ncksor[7] = Array (3,8,9,2,0,4,0,5);
$ncksor[8] = Array (2,7,6,3,5,1,5,0);
$ncksor[9] = Array (3,8,7,2,4,0,4,1);
// LG 510W (orange)
$ncksor[0] = Array (0,5,4,1,3,9,3,8);
$ncksor[1] = Array (1,4,5,0,2,8,2,9);
$ncksor[2] = Array (8,3,2,9,5,1,5,0);
$ncksor[3] = Array (9,2,3,8,4,0,4,1);
$ncksor[4] = Array (4,1,0,5,9,3,9,2);
$ncksor[5] = Array (5,0,1,4,8,2,8,3);
$ncksor[6] = Array (2,9,8,3,1,5,1,4);
$ncksor[7] = Array (3,8,9,2,0,4,0,5);
$ncksor[8] = Array (2,7,6,3,5,1,5,0);
$ncksor[9] = Array (3,6,7,2,4,1,4,1);
// LG 7010 / 7020
$ncksor[0] = Array (1,0,2,9,2,5,5,4);
$ncksor[1] = Array (0,1,3,8,3,4,4,5);
$ncksor[2] = Array (3,8,4,1,4,7,7,2);
$ncksor[3] = Array (2,9,5,0,5,6,6,3);
$ncksor[4] = Array (5,4,8,3,8,1,1,0);
$ncksor[5] = Array (4,5,9,2,9,0,0,1);
$ncksor[6] = Array (7,2,0,5,0,3,3,8);
$ncksor[7] = Array (6,3,1,4,1,2,2,9);
$ncksor[8] = Array (9,2,4,1,4,3,3,6);
$ncksor[9] = Array (8,3,5,0,5,2,2,7);
// LG W3000
$ncksor[0] = Array (0,5,4,1,0,0,0,7);
$ncksor[1] = Array (1,4,5,0,3,1,1,0);
$ncksor[2] = Array (8,3,2,9,0,8,0,5);
$ncksor[3] = Array (9,2,3,8,0,9,0,4);
$ncksor[4] = Array (4,1,0,5,4,4,4,3);
$ncksor[5] = Array (5,0,1,4,0,5,5,2);
$ncksor[6] = Array (2,9,8,3,0,0,2,0);
$ncksor[7] = Array (3,8,9,2,1,3,0,0);
$ncksor[8] = Array (2,7,6,3,4,0,2,0);
$ncksor[9] = Array (3,6,7,2,5,0,3,4);
// LG C1200
$ncksor[0] = Array (0,0,0,0,3,5,8,0);
$ncksor[1] = Array (1,1,1,1,2,4,9,0);
$ncksor[2] = Array (2,2,2,2,5,7,0,7);
$ncksor[3] = Array (3,3,3,3,4,6,1,0);
$ncksor[4] = Array (4,4,4,4,9,1,2,7);
$ncksor[5] = Array (5,5,5,5,8,0,3,0);
$ncksor[6] = Array (6,6,6,6,1,2,4,7);
$ncksor[7] = Array (7,7,7,7,0,2,5,7);
$ncksor[8] = Array (8,8,8,8,5,3,0,3);
$ncksor[9] = Array (9,9,9,9,4,2,1,0);
// Az NCK kód kinyerése
$nck = $ncksor[$imei[0]][0];
$nck .= $ncksor[$imei[1]][1];
$nck .= $ncksor[$imei[2]][2];
$nck .= $ncksor[$imei[3]][3];
$nck .= $ncksor[$imei[0]][4];
$nck .= $ncksor[$imei[1]][5];
$nck .= $ncksor[$imei[2]][6];
$nck .= $ncksor[$imei[3]][7];
KIMENET: NCK kód (8 számjegyű)
Szóval ennyi pontosan elég volt ahhoz, hogy nagy népszerűségre tegyek szert a laikusok körében és az urnához járuljanak. Az csak mellékszál, hogy Mr.E ugyanezt a kódot SPCK-val kiegészítve árulta akkoriban 100.000 forintért. Mivel ő miatta mindenki tudott a kódbevitelről, logikusnak látszott ezen a szálon elindulni. Azt hiszem, hogy az alapok (hen)Zulea műhelyéből kerültek ki. Nagyjából ennyire volt bonyolult az összes algoritmus (és beszerezhetőek voltak nyílt forrásokból). Mivel SPCK-t (Service Provider Code Key) szinte senki sem számolgatott, ezért elég volt az NCK-ra (Network Code Key) rámenni. A kalkulátorok elterjedése egyrészt szabaddá tette az embereket, másrészt bizalmat épített a mobil szakma iránt. A szakma csak a fejét csóválta, pedig sokat köszönhet ezeknek a kalkulátoroknak. De ez egy másik történet.