Program De Verificare A Cnp
Pagini: 1, 2, 3


adirusu76


QUOTE (xavier_tm @ Apr 2 2008, 22:40) *
Am CNP valid.
Marfa !!!
Judet 35 inseamna judet TIMIS ???
Bravo man.


http://ro.wikipedia.org/wiki/Cod_numeric_personal
sferix
RealVirtual.ro - iti ofera posibilitatea verificarii online a CNP, CIF, IBAN
 
kungfumaster
Au aparut mai multe site-uri in ultima vreme care ofera aceasta posibilitate. codul.net permite in plus si generarea unor exemple de CNP, CIF (fictive, care nu reprezinta neaparat persoane). Se pot de asemenea valida coduri ca IBAN,CIF,CNP, numarul de card.
phinkuletz
QUOTE (zuppy @ Mar 5 2005, 03:13) *
inca un program inutil care a aplicat o simpla formula matematica gasita pe zeci de site-uri

@dallass: algoritmul e asta:

sa inventez un CNP, de ex: 1781231123450
asta inseamna barbat (nascut inainte de 2000), anul 1978, luna decembrie, ziua 31.
Cod judet: 12
Cod: 345
Cod verificare: 0

Deci, cnp[0] = 1, cnp[1] = 7, cnp[2] = 8... si tot asa (cifra dintre paranteze reprezinta numarul de ordine al cifrei -1, deoarece numaratoarea incepe de la 0 si nu de la 1)

Validarea se face asa:

cnp[0] * 2 + cnp[1] * 7 + cnp[2] * 9 + cnp[3] * 1 + cnp[4] * 4 + cnp[5] * 6 + cnp[6] * 3 + cnp[7] * 5 + cnp[8] * 8 + cnp[9] * 2 + cnp[10] * 7 + cnp[11] * 9

ultima cifra este pentru validarea cnp-ului, rolul ei il explic mai jos.

Deci calculul de mai sus inseamna:
1 * 2 + 7 * 7 + 8 * 9 + 1 * 1 + 2 * 4 + 3 * 6 + 1 * 3 + 1 * 5 + 2 * 8 + 3 * 2 + 4 * 7 + 5 * 9 =
2 + 49 + 72 + 1 + 8 + 18 + 3 + 5 + 16 + 6 + 28 + 45
= 253

Din rezultat se calculeaza restul impartirii la 11:

253 %11 = 0

exista 2 conditii pt a valida cnp-ul, oricare dintre ele intoarce adevarat:
1) daca restul este mai mic decat 10 si este egal cu ultima cifra (cnp[12])
2) daca restul este 10 si ultima cifra este 1

In cazul nostru e valabila conditia a, deci este un cnp valid.

ps: programul lui Panthera este gresit
ps2: http://forum.softpedia.com/index.php?showtopic=16864 pt varianta pascal & fox

No bine, am citit algoritmul si l-am inteles foarte bine dar, nu reusesc sa-l fac in php (am si eu o luna de cand am inceput sa invat php). Fiti atenti:
CNP-ul meu e asta 1901009374541

for ($i=0;$i<=11;$i++) {
$p+=substr($cnp,$i,1) * substr($cv,$i,1); // $cv este 279146358279
} // pana aici totul e bine, adica suma obtinuta e de 243.
$r=$p%11; //calculez restul impartirii la 11 si-mi da 22.0909090909. In cazut de fata cheia de control e "0" sau "09"? Oricare ar fi, e gresit pentru CNP-ul de sus. Restul ar trebui sa fie 1, nu?
Please, astept raspuns!!!
phinkuletz
Gata, l-am terminat. Si merge foarte bine:). L-am facut si pentru cei nascuti dupa '99, adek cu 5,6 la inceput. http://iosif.worship.ro/cnp
alex_ro_buc
Pe www.yotta.ro poti sa verifici CNP, IBAN, CUI si Cod Parafa !!!

Stite cineva algoritmul ?
Pagini: 1, 2, 3
Aceasta este o versiune simplificatã a paginii originale. Pentru a vizita versiunea originala click aici.