Archive

Archive for March, 2010

Verificare NIF

March 22nd, 2010 Eduard No comments

NIF – Numere de Identificare Europene

In aceasta sectiune sunt prezentati algoritmii pentru validarea unor diverse coduri din statele uniunii europene. Aceste coduri pot fi coduri numerice personale, coduri de identificare fiscala, coduri de TVA etc.

TARA Format Exemplu

AT
Austria A(1)+N(1-7)+C(1)
A(1)={U} U12345675 S=N(1)+2#N(2)+N(3)+2#N(4)+N(5)+2#N(6)+N(7)
C(1)=10-(S+4)%10; daca C(1)=10, C(1)=0

BE
Belgia N(1-8)+C(1-2)
N(2)>1 1234567894 C(1-2)=97-N(1-7)%97

BG
Bulgaria N(1-9)+C(1)
if N(1)={2,3}, N(2-3)={22} 1234567892S=4*N(1)+3*N(2)+2*N(3)+7*N(4)+6*N(5)+5*N(6)+4*N(7)+3*N(8)+2*N(9)
C(1)=11-S%11; daca C(1)=11, C(1)=0; if C(1)=10, eronat

CY
Cipru N(1-8)+C(1)
N(1)={0,1,3,4,5,9} 12345678F N(1,3,5,7){0,1,2,3,4,5,6,7,8,9} → N(1,3,5,7){1,0,5,7,9,13,15,17,19,21}
S=N(1)+N(2)+N(3)+N(4)+N(5)+N(6)+N(7)+N(8)
C(1)=S%26
C{0-25} → C{A-Z}

CZ
Cehia Persoane juridice N(1-7)+C(1)
N(1)={0,1,2,3,4,5,6,7,8} 12345679 S=8*N(1)+7*N(2)+6*N(3)+5*N(4)+4*N(5)+3*N(6)+2*N(7)
C(1)=11-S%11; daca C(1)=10, C(1)=0; daca C(1)=11, C(1)=1 Cazuri speciale N(1-8)+C(1)
N(1)={6} 612345670 S=8*N(2)+7*N(3)+6*N(4)+5*N(5)+4*N(6)+3*N(7)+2*N(8)
C(1)=9-(11-S%11)%10 9 cifre – persoane fizice N(1-9)
N(1-2)={00-53,80-99}
N(3-4)={01-12,51-62}
daca N(3-4)={02,52} si N(1-2)%4>0, N(5-6)={01-28}
daca N(3-4)={02,52} si N(1-2)%4=0, N(5-6)={01-29}
daca N(3-4)={04,06,09,11,54,56,59,61}, N(5-6)={01-30}
daca N(3-4)={01,03,05,07,08,10,12,51,53,55,57,58,60,62}, N(5-6)={01-31} 991231123 10 cifre – persoane fizice N(1-10)
N(1-2)={54-99}
N(3-4)={01-12,51-62}
daca N(3-4)={02,52} si N(1-2)%4>0, N(5-6)={01-28}
daca N(3-4)={02,52} si N(1-2)%4=0, N(5-6)={01-29}
daca N(3-4)={04,06,09,11,54,56,59,61}, N(5-6)={01-30}
daca N(3-4)={01,03,05,07,08,10,12,51,53,55,57,58,60,62}, N(5-6)={01-31} 6306150004daca (N(1-2)+N(3-4)+N(5-6)+N(7-8)+N(9-10))%11=0 si N(1-10)%11=0, valid

DE
Germania N(1-8)+C(1)
N(1-8)>0 123456788 S=0
FOR I=1 TO 8
S=2*((N(I)+S+9)%10+1)%11
NEXT I
C(1)=11-S; daca C(1)=10, C(1)=0

DK
Danemarca N(1-8)
N(1)>0 12345674 S=2*N(1)+7*N(2)+6*N(3)+5*N(4)+4*N(5)+3*N(6)+2*N(7)+N(8)
daca S%11=0, valid

EE
Estonia N(1-8)+C(1) 123456780S=3*N(1)+7*N(2)+1*N(3)+3*N(4)+7*N(5)+1*N(6)+3*N(7)+7*N(8)
C(1)=10-S%10; daca C(1)=10, C(1)=0

ES
Spania Persoane juridice pro-profit A(1)+N(1-7)+C(1)
A(1)={A-H} A12345674 S=2#N(1)+N(2)+2#N(3)+N(4)+2#N(5)+N(6)+2#N(7)
C(1)=10-S%10; daca C=10, C=0 Persoane juridice non-profit A(1)+N(1-7)+C(1)
A(1)={N,P,Q,S} P1234567D S=2#N(1)+N(2)+2#N(3)+N(4)+2#N(5)+N(6)+2#N(7)
C(1)=10-S%10
C{1-10} → C{A-J} Persoane fizice N(1-8)+C(1) 12345678Z C(1)=1+N(1-8)%23
C{1-23} → C{T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E} Persoane fizice straine, sub 14 ani sau ne-rezidenti A(1)+N(1-7)+C(1)
A(1)={K,L,M,X} K1234567L C(1)=1+N(1-7)%23
C{1-23} → C{T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E}

FI
Finland N(1-7)+C(1) 12345671 S=7*N(1)+9*N(2)+10*N(3)+5*N(4)+8*N(5)+4*N(6)+2*N(7)
C(1)=11-S%11; daca C(1)=11, C(1)=0; if C(1)=10, eronat

FR
Franta Sistem vechi C(1-2)+N(1-9)
N(1-9)>0 32123456789 C(1-2)=(N(1-9)*100+12)%97 Sistem nou C(1-2)+N(1-9)
N(1-9)>0
C(1-2)={A-H,J-N,P-Z} | {0-9}
daca C(1) este alfanumeric, C(2) trebuie sa fie numeric si invers. 2H123456789 C{0-9,A-H,J-N,P-Z} → C{0-33}
daca C(1)<10, S=C(1)*24+C(2)-10
daca C(1)>9, S=C(1)*34+C(2)-100
X=S%11
S=S +1
Y=(N(1-9)+S)%11
daca X=Y, valid

GB
Marea Britanie Departament guvernamental A(1-2)+N(1-3)
A(1-2)={GD}
N(1-3)<500 GD123 Ministerul sanatatii A(1-2)+N(1-3)
A(1-2)={HA}
N(1-3)>499 HA567 Standard N(1-9)
N(1-7)={0000001-0019999,1000000-9999999}
N(8-9)<97 123456782S=8*N(1)+7*N(2)+6*N(3)+5*N(4)+4*N(5)+3*N(6)+2*N(7)+10*N(8)+N(9)
daca S%97=0, valid Grup comercial N(1-10)
N(1-7)={0000001-0019999,1000000-9999999}
N(8-9)<97
N(10)={3} 1234567823S=8*N(1)+7*N(2)+6*N(3)+5*N(4)+4*N(5)+3*N(6)+2*N(7)+10*N(8)+N(9)
daca S%97=0, valid Islanda N(1-12)
N(1-3)={000,001}
N(4-10)={0000001-0019999,1000000-9999999}
N(11-12)<97 001123456782S=8*N(4)+7*N(5)+6*N(6)+5*N(7)+4*N(8)+3*N(9)+2*N(10)+10*N(11)+N(12)
daca S%97=0, valid Group comercial Islanda N(1-13)
N(1-3)={000,001}
N(4-10)={0000001-0019999,1000000-9999999}
N(11-12)<97
N(13)={3} 0011234567823S=8*N(4)+7*N(5)+6*N(6)+5*N(7)+4*N(8)+3*N(9)+2*N(10)+10*N(11)+N(12)
daca S%97=0, valid

GR
Grecia Conform normei ISO-3166-1 , prefixul GR corespunde Greciei dar Directive Europeana 2001/115, in urma cereri din partea Greciei, a schimbat prefixul in EL. Ambele pot fi folosite acum. Sistem de 7 cifre N(1-7)+C(1) 12345670S=128*N(1)+64*N(2)+32*N(3)+16*N(4)+8*N(5)+4*N(6)+2*N(7)
C(1)=S%11; daca C(1)=10, C(1)=0 Sistem de 8 cifre N(1-8)+C(1) 123456783S=256*N(1)+128*N(2)+64*N(3)+32*N(4)+16*N(5)+8*N(6)+4*N(7)+2*N(8)
C(1)=S%11; daca C(1)=10, C(1)=0

HU
Ungaria N(1-7)+C(1)
N(1)>0 12345676 S=9*N(1)+7*N(2)+3*N(3)+1*N(4)+9*N(5)+7*N(6)+3*N(7)
C(1)=10-S%10; daca C(1)=10, C(1)=0

IE
Irlanda Vechi N(1)+A(1)+N(2-6)+C(1)
N(1)>6
A(1)={A-Z,+,*} 7A12345J S=7*N(2)+6*N(3)+5*N(4)+4*N(5)+3*N(6)+2*N(1)
C(1)=S%23
C{0-22} → C{W,A-V} Nou N(1-7)+C(1)
N(1-7)>0 1234567T S=8*N(1)+7*N(2)+6*N(3)+5*N(4)+4*N(5)+3*N(6)+2*N(7)
C(1)=S%23
C{0-22} → C{W,A-V}

IT
Italia Codul fiscal italia pentru persoane fizice, aprobat prin decretul #13813 din 12/23/1976, nu este verificat deoarece nu este acceptat drept cod valid pentru operatiile intercomunitare legate de TVA N(1-10)+C(1)
N(1-7)>0
N(8-10)={1-100,120,121} 12345670017S=N(1)+2#N(2)+N(3)+2#N(4)+N(5)+2#N(6)+N(7)+2#N(8)+N(9)+2#N(10)
C(1)=10-S%10; daca C(1)=10, C(1)=0

LT
Lituania Persoane juridice N(1-8)+C(1)
N(8)={1} 123456715 S=1*N(1)+2*N(2)+3*N(3)+4*N(4)+5*N(5)+6*N(6)+7*N(7)+8*N(8)
daca S%11=10, S=3*N(1)+4*N(2)+5*N(3)+6*N(4)+7*N(5)+8*N(6)+9*N(7)+1*N(8)
C(1)=S%11; daca C(1)=10, C(1)=0 Platitori de taxe temporari si persoane fizice N(1-11)+C(1)
N(11)={1} 123456789011S=1*N(1)+2*N(2)+3*N(3)+4*N(4)+5*N(5)+6*N(6)+7*N(7)+8*N(8)+9*N(9)+1*N(10)+2*N(11)
daca S%11=10, S=3*N(1)+4*N(2)+5*N(3)+6*N(4)+7*N(5)+8*N(6)+9*N(7)+1*N(8)+2*N(9)+3*N(10)+4*N(11)
C(1)=S%11; daca C(1)=10, C(1)=0

LU
Lubembourg N(1-6)+C(1-2)
N(1-6)>0 12345613 C(1-2)=N(1-6)%89

LV
Letonia Persoane juridice N(1-10)+C(1)
N(1)={4,5,6,7,8,9} 41234567891S=9*N(1)+1*N(2)+4*N(3)+8*N(4)+3*N(5)+10*N(6)+2*N(7)+5*N(8)+7*N(9)+6*N(10)
daca S%11=4 si N(1)=9, S=S-45
daca S%11=4, C(1)=4-S%11
daca S%11>4, C(1)=14-S%11
daca S%11<4, C(1)=3-S%11 Persoane fizice N(1-11)
daca N(3-4)={02} si N(5-6)%4>0, N(1-2)={01-28}
daca N(3-4)={02} si N(5-6)%4=0, N(1-2)={01-29}
daca N(3-4)={04,06,09,11}, N(1-2)={01-30}
daca N(3-4)={01,03,05,07,08,10,12}, N(1-2)={01-31}
N(3-4)={01-12} 15066312345

MT
Malta N(1-6)+C(1-2)
N(1-6)>100000 12345634 S=3*N(1)+4*N(2)+6*N(3)+7*N(4)+8*N(5)+9*N(6)
C(1-2)=37-S%37 NL
Olanda N(1-8)+C(1)+A(1)+N(9-10)
N(1-8)>0
A(1)={B} 123456782B90 S=9*N(1)+8*N(2)+7*N(3)+6*N(4)+5*N(5)+4*N(6)+3*N(7)+2*N(8)
C(1)=S%11; daca C(1)=10, eronat

PL
Polonia N(1-9)+C(1) 1234567883S=6*N(1)+5*N(2)+7*N(3)+2*N(4)+3*N(5)+4*N(6)+5*N(7)+6*N(8)+7*N(9)
C(1)=S%11; daca C(1)=10, eronat

PT
Portugalia N(1-8)+C(1)
N(1)>0 123456789 S=9*N(1)+8*N(2)+7*N(3)+6*N(4)+5*N(5)+4*N(6)+3*N(7)+2*N(8)
C(1)=11-S%11; daca C(1)=10, C(1)=0; daca C(1)=11, C(1)=0

RO
Romania Persoane juridice N(1-9)+C(1) 1234567897S=7*N(1)+5*N(2)+3*N(3)+2*N(4)+1*N(5)+7*N(6)+5*N(7)+3*N(8)+2*N(9)
C(1)=S*10%11; daca C(1)=10, C(1)=0 Persoane fizice N(1-12)+C(1)
N(1)={1,2,3,4,6}
N(4-5)={01-12}
daca N(4-5)={02} si N(2-3)%4>0, N(6-7)={01-28}
daca N(4-5)={02} si N(2-3)%4=0, N(6-7)={01-29}
daca N(4-5)={04,06,09,11}, N(6-7)={01-30}
daca N(4-5)={01,03,05,07,08,10,12}, N(6-7)={01-31} 1630615123457S=2*N(1)+7*N(2)+9*N(3)+1*N(4)+4*N(5)+6*N(6)+3*N(7)+5*N(8)+8*N(9)+2*N(10)+7*N(11)+9*N(12)
C(1)=S%11; daca C(1)=10, C(1)=1

SE
Suedia N(1-9)+C(1)+N(10-11)
N(10-11)>0 123456789701 S=2#N(1)+N(2)+2#N(3)+N(4)+2#N(5)+N(6)+2#N(7)+N(8)+2#N(9)
C(1)=10-S%10; daca C(1)=10, C(1)=0

SI
Slovenia N(1-7)+C(1)
N(1-7)>999999 12345679 S=8*N(1)+7*N(2)+6*N(3)+5*N(4)+4*N(5)+3*N(6)+2*N(7)
C(1)=11-S%11; daca C(1)=10, C(1)=0; daca C(1)=11, C(1)=1

SK
Slovacia Pentru persoanele nascute in anul 2000, numarul de identitate si platitorii de taxe nu pot fi diferentiati. Numar de identitate N(1-9)+C(1)
N(1-2)={00} 0012345675 S=8*N(3)+7*N(4)+6*N(5)+5*N(6)+4*N(7)+3*N(8)+2*N(9)
C(1)=11-S%11; daca C(1)=10, C(1)=0; daca C(1)=11, C(1)=1 Platitori de taxe N(1-10)
N(1-2)={00} 0012345678 Persoane fizice (nascute inainte de 1/1/1954) N(1-9)
N(1-2)={00-53}
N(3-4)={01-12,51-62}
daca N(3-4)={02,52} si N(1-2)%4>0, N(5-6)={01-28}
daca N(3-4)={02,52} si N(1-2)%4=0, N(5-6)={01-29}
daca N(3-4)={04,06,09,11,54,56,59,61}, N(5-6)={01-30}
daca N(3-4)={01,03,05,07,08,10,12,51,53,55,57,58,60,62}, N(5-6)={01-31} 531231123Persoane fizice (nascute dupa 31/12/1953) N(1-10)
N(1-2)={54-99}
N(3-4)={01-12,51-62}
daca N(3-4)={02,52} si N(1-2)%4>0, N(5-6)={01-28}
daca N(3-4)={02,52} si N(1-2)%4=0, N(5-6)={01-29}
daca N(3-4)={04,06,09,11,54,56,59,61}, N(5-6)={01-30}
daca N(3-4)={01,03,05,07,08,10,12,51,53,55,57,58,60,62}, N(5-6)={01-31} 6306151234

Notatii

X+Y : X adunat cu Y.

X-Y : X scazut din Y.

X*Y : X inmultit cu Y.

X#Y : X inmultit Y si cifrele rezultatului adunate. Spre examplu, 2*6=12, 1+2=3, apoi, 2#6=3.

X/Y : X impartit la Y.

X\Y : impartire intreaga a lui X la Y. Spre exemple, 15/6=2 si rest 3, adica, 15\6=2.

X%Y : restul impartirii intregi a lui X la Y (MODULO). Spre examplu, 15/6=2 si rest 3 , adica, 15%6=3.

X{a-b} → X{c-d} : transformarea elementelor a-b in corespondenti lor c-d. Spre exemplu X{1-3} → X{a-c}, convertit 1 in a, 2 in b si 3 in c.

In celula Format, formatul este specificat inaintea conditiilor pentru validare. Numerele se identifica prin “N” urmate de un interval de numere intre paranteze; caracterele alfanumerice, prin “A” urmate de un interval de caractere intre paranteze, si caracterele de control cu “C” urmate de un interval, in care se poate situa caracterul , intre paranteze.

Categories: Sfaturi Tags:

Verificare card bancar

March 22nd, 2010 Eduard No comments

Cod de CARD

Exista doua mari categorii de carduri : cardul de credit si cardul de debit .

Cele doua mari tipuri de carduri sunt net diferite. Fiecare are avantaje specifice in functie de profilul utilizatorului. Aspectul important care le uneste, este menirea lor de instrumente de plata.

Cardurile de credit isi au originea in Statele Unite ale Americii in anii 1920. Atunci diferite companii, cum ar fi lanturile hoteliere si companiile de petrol, au inceput sa emita astfel de carduri clientilor lor pentru a efectua plata produselor oferite de ei. Aceasta tendinta a inceput sa se accentueze dupa Al Doilea Razboi Mondial.

Primul card de credit universal, care putea fi folosit ca metoda de plata la o varietate mare de magazine, a fost introdus deDiners Club in 1950.

Sistemul de numerotare adoptat pentru carduri este ANSI Standard X4.13-1983.


Structura unui cod de card

|S|BBB BB|NN NNNN NNN|C|
|_|____ __|___ _____ ____|_|
:             :                          :                       :
:             :                          :                       –> Cifra ce control
:             :                          :
:             :                          –> Numarul contului
:             :
:             –> Identificatorul emitentului
:
–> Tipul de card sau Major Industry Identifier (MII)

Major Industry Identifier

Prima cifra a unui cod de card este “Major Industry Identifier (MII)“, ceea ce reprezinta categoria emitentului:

0 ISO/TC 68 si alte industrii
1 Companii aeriene
2 Companii aeriene
3 Calatorii si agrement
4 Domeniu bancar and financiar
5 Domeniu bancar and financiar
6 Comert si domeniu bancar
7 Industrie petroliera
8 Telecomunicatii
9 Domeniul public

Spre examplu, American Express, Diner’s Club si Carte Blanche se incadreaza in categoria Calatorii si agrement, VISA, MasterCard si Discover sunt in categoria Domeniu bancar si financiar, iar SUN Oil si Exxon sunt in categoria Industrie petroliera.

Identificatorul emitentului

Primele 6 cifre din codul de card (inclusiv cifra MII) reprezinta identificatorul emitentului. Aceasta inseamna ca numarul total de posibili emitenti este de un milion.

Cei mai cunoscuti emitenti sunt :

Emitent Identificator Lungimea codului de card
Diner’s Club/Carte Blanche 300xxx-305xxx,36xxxx, 38xxxx 14
American Express 34xxxx, 37xxxx 15
VISA 4xxxxx 13,16
MasterCard 51xxxx-55xxxx 16
Discover 6011xx 16
JCB 2131xx,1800xxx 15,16
enRoute 2014xx,2149xx 15

Daca cifra MII este 9, atunci urmatoarele 3 cifre ale emitentului sunt codul tarii definit de ISO 3166, si urmatoarele doua cifre pot fi definite prin standarde nationale.

Numarul contului

Cifrele de la 7 la (n-1) din codul de card reprezinta identificatorul contului. Lungimea maxima a unui cod de card este de 19 cifre deci lungima maxima a numarului contului este de 12 cifre. Asta inseamna ca fiecare emitent dispune de un trilion de numere de cont posibile.

Cifra de control

Ultima cifra a codului de card reprezinta cifra de control. Algoritmul folosit pentru a verifica cifra de control se numesteAlgortimul Luhn, dupa numele omului de stiinta Hans Peter Luhn (1896-1964). El a primit premiul US Patent 2950048 (”Computer for Verifying Numbers”) pentru acest algoritm in anul 1960.


Algoritmul Luhn de validare al unui cod de card

Pas 1: Se inmulteste fiecare cifra din codul de card cu ponderea sa. Daca un card are un numar par de cifre, prima cifra are o pondere de 2, daca nu, cifra are o pondere de 1. Dupa aceea , ponderile cifrelor alterneaza 1,2,1,2.

Pas 2: Daca orice cifra are o valoare ponderata mai mare decat 9, se scade 9 din valoarea ei.

Pas 3: Se aduna toate valorile ponderate si se calculeaza restul impartirii la 10 (MODULO 10).

Pas 4: Un cod de card este valid daca rezultatul operatiei MODULO 10 este 0.

Categories: Sfaturi Tags:

Validare ISBN

March 22nd, 2010 Eduard 1 comment

ISBN – International Standard Book Number

ISBN este un numar de inregistrare pentru carti,cu caracter international. El este eliberat de Biroul National ISBN si contine indicativul editurii care l-a achizitionat. Un numar ISBN este asociat unui singur titlu de carte si nu mai poate fi atribuit niciodata altui titlu.

Conceperea sistemului ISBN dateaza din anul 1965 si se datoreaza distribuitorului englez W.H. Smith & Son Ltd si Asociatiei Editorilor din Marea Britanie. Din anul 1970, Numarul Standard International al Cartii-ISBN a fost recunoscut international ca un sistem de identificare în domeniul cartii. Din anul 1989, sistemul de numerotare standardizata a cartilor ISBN a fost introdus si în România.

Un cod ISBN insoteste o publicatie monografica de la editarea sa si mai departe, in tot lantul de distributie. Codul ISBN se foloseste ca element cheie al sistemelor de inregistrare si inventar pentru editori, distribuitori, comercianti, biblioteci si alte organizatii.

Standardul ISO 2108 revizuit a fost publicat la inceputul anului 2005 si reprezinta prima schimbare aparuta in structura ISBN de la infiintarea acestui sistem. Noile prevederi ale standardului vor fi aplicate începând cu 1 ianuarie 2007. Pana la aceasta data va exista o perioada de tranzitie, cand se vor folosi în paralel ambele variante ale codului ISBN, atat ISBN-10 (ISBN format din 10 cifre) cat si ISBN-13 (ISBN format din 13 cifre). Prevederile standardului ISO 2108/2005 se aplica atat publicatiilor tiparite cat si celor in format electronic precum si tuturor celorlalte documente identificate prin cod ISBN.

Structura codului ISBN-10

Codul de 10 cifre este impartit in patru parti variabile ca lungime :

  • Prima parte : Grupul. Aceasta parte identifica locatia nationala sau geografica a editurii.
  • A doua parte : Editura. Reprezinta o anume editura in cadrul unei tari sau grupari.
  • A treia parte : Titlul. Aceasta parte identifica un anumit titlu sau editie al unui anumit editor.
  • A patra parte : Cifra de control. Aceasta este o singura cifra sau litera alfabetica X.

Structura codului ISBN-13

Codul ISBN-10 va fi prefixat cu 978 si i se va recalcula cifra de control. Dupa ce se vor epuiza toate codurile ISBN-10 , urmatoarele coduri ISBN-13 se vor prefixa cu 979.


Algoritmul de validare al unui cod ISBN – 13

Pasul preliminar: Se elimina spatiile si cratimele. Ultima cifra se ignora (este cifra de control).

Pasul 1: Se inmulteste fiecare cifra cu ponderea asociata ei. Ponderile se atribuie pentru fiecare cifra, incepand cu prima cifra, sub forma 1,3,1,3…

Ponderi 1 3 1 3 1 3 1 3 1 3 1 3 1
ISBN 9 7 8 0 9 0 1 6 9 0 6 6 1
Valori 9 21 8 0 9 0 1 18 9 0 6 18 1

Pasul 2: Se aduna valorile obtinute

Pasul 3: Se imparte suma obtinuta la 10 si se extrage restul (MODULO 10).

Pasul 4: Daca restul este 0 atunci cifra de control trebuie sa fie 0.Daca restul este diferit de 0, atunci se scade restul obtinut din 10. Rezultatul reprezinta cifra de control. Pentru un ISBN-13 valid cifra de control rezultata va trebui sa fie egala cu ultima cifra a codului (cifra 13).

Algoritmul de validare al unui cod ISBN – 10

Pasul preliminar: Se elimina spatiile si cratimele. Ultimul caracter se ignora (este caracterul de control).

Pasul 1: Se inmulteste fiecare cifra cu ponderea asociata ei. Ponderile se atribuie pentru fiecare cifra, incepand cu prima cifra, sub forma (11-pozitia cifrei)

Ponderi 10 9 8 7 6 5 4 3 2
ISBN 0 9 4 0 0 1 6 6 1
Valori 0 81 32 0 0 5 24 18 2

Pasul 2: Se aduna valorile obtinute

Pasul 3: Se imparte suma obtinuta la 11 si se extrage restul (MODULO 11).

Pasul 4: Daca restul este 0 atunci caracterul de control trebuie sa fie 0.Daca restul este 10 atunci caracterul de control este ‘X’. Daca restul este diferit de 0, atunci se scade restul obtinut din 11. Rezultatul reprezinta caracterul de control. Pentru un ISBN-10 valid caracterul de control rezultat va trebui sa fie egal cu ultimul caracter al codului (caracterul 10).

Categories: Sfaturi Tags:

Validare IBAN

March 22nd, 2010 Eduard No comments

IBAN – International Bank Account Number

Codul IBAN este un standard international pentru numerotarea codurilor bancare. A fost adoptat pentru prima oara de catre Comitetul European pentru Standarde Bancare iar in prezent este cunoscut ca ISO 13616:2003. IBAN-ul consista dintr-un cod de tara ISO 3166-1 de doua litere, urmat de doua cifre de control, si pana la 30 de caractere alfanumerice pentru codul contului bancar domestic (BBAN – Basic Bank Account Number).

Pentru Romania, primele patru caractere ale codului BBAN constituie codul national al bancii de care apartine contul respectiv. Lungimea codului BBAN este fixata de comitetul bancii nationale al fiecarei tari si trebuie sa fie aceeasi pentru toata tara.

In format electronic codul IBAN trebuie sa nu contina spatii sau alte caractere despartitoare, iar atunci cand este tiparit pe hartie este exprimat in grupuri de cate patru caractere, cu ultimul grup de lungime variabila.

Un IBAN este alcatuit astfel :

|RO| |XX| |yyyy| |ZZZZZZZZZZZZZZZZ|
|__| |__| |____| |________________|
:           :          :                                 :
:           :          :                                 :
:           :          :                                 –> 16 caractere care identifica în mod unic unitatea
:           :          :                                       teritoriala a institutiei si contul clientului
:           :          :                                       deschis la respectiva unitate teritoriala
:           :          :                                       (alfanumerice, majuscule)
:           :          :
:           :          –> 4 caractere de identificare a institutiei (alfabetice,
:           :           majuscule), reprezentând primele patru caractere ale codului
:           :           BIC al institutiei
:           :
:            –> 2 caractere de verificare (numerice, de la 0 la 9)
:
–> codul de tara (2 caractere alfabetice, majuscule) – pentru România este RO.


Algoritmul de validare al unui cod IBAN

Pas preliminar: In cazul în care codul IBAN este prezentat pe suport hartie, se converteste formatul acestuia la formatul electronic prin stergerea spatiilor de separare.
EXEMPLU: un cod IBAN de tipul RO49 AAAA 1B31 0075 9384 0000 devine RO49AAAA1B31007593840000.

Pasul 1: Se muta primele patru caractere (simbolizând codul de tara si caracterele de verificare) la dreapta codului IBAN.
EXEMPLU: RO49AAAA1B31007593840000 devine AAAA1B31007593840000RO49.

Pasul 2: Se face conversia literelor în numere, conform tabelei urmatoare :


A = 10 G = 16 M = 22 S = 28 Y = 34

B = 11 H = 17 N = 23 T = 29 Z = 35

C = 12 I = 18 O = 24 U = 30

D = 13 J = 19 P = 25 V = 31

E = 14 K = 20 Q = 26 W = 32

F = 15 L = 21 R = 27 X = 33

EXEMPLU: AAAA1B31007593840000RO49 devine 1010101011131007593840000272449

Pasul 3: Se aplica algoritmul MOD 97-10 (conform ISO 7064). Pentru ca cele 2 caractere de verificare sa fie corecte (codul IBAN sa fie corect), restul impartirii numarului astfel obtinut la 97 trebuie sa fie 1.
EXEMPLU: Restul impartirii lui 1010101011131007593840000272449 la 97 este 1.

Categories: Sfaturi Tags:

Validare CIF

March 22nd, 2010 Eduard No comments

CIF – Cod de Identificare Fiscala

CIF – codul de identificare fiscala este un cod numeric constituind codul unic de identificare a unui comerciant.Acesta se mai numeste si cod fiscal sau cod unic de identificare. Pana la 1 ianuarie 2007 s-a numit Cod Unic de Inregistrare (CUI).

Conform legii nr. 359 din 8 septembrie 2004, privind simplificarea formalitatilor la inregistrarea in registrul comertului a persoanelor fizice, asociatiilor familiale si persoanelor juridice, inregistrarea fiscala a acestora, precum si la autorizarea functionarii persoanelor juridice:

Solicitarea inregistrarii fiscale a unui comerciant se face prin depunerea cererii de inregistrare la biroul unic din cadrul oficiului registrului comertului de pe langa tribunal, iar atribuirea codului unic de inregistrare de catre Ministerul Finantelor Publice este conditionata de admiterea cererii de inregistrare in registrul comertului de catre judecatorul-delegat.
Pentru asociatiile familiale, precum si pentru persoanele juridice prevazute la art. 2 structura codului unic de inregistrare se stabileste de Ministerul Finantelor Publice, Ministerul Muncii, Solidaritatii Sociale si Familiei, Ministerul Sanatatii, Ministerul Administratiei si Internelor si Ministerul Justitiei.
Pentru persoanele fizice codul unic de inregistrare coincide cu codul numeric personal atribuit de Ministerul Administratiei si Internelor sau, dupa caz, cu numarul de identificare fiscala atribuit de Ministerul Finantelor Publice.
Atributul fiscal atasat codului unic de inregistrare este un cod alfanumeric avand semnificatia categoriei de platitor de taxe si impozite la bugetul de stat.Daca atributul fiscal are valoarea “RO”, acesta atesta ca persoana juridica a fost luata in evidenta organului fiscal ca platitor de T.V.A.

Un CIF este alcatuit astfel :
[ |ZZZZZZZZZ| ] |C|
|_________| |_|
C  –> Cifra ce control

ZZZZZZZZZ –> Numarul de ordine (maxim 9 caractere)

Algoritmul de validare al unui cod CIF
Pas preliminar: Se testeaza daca codul respecta formatul unui cod CIF. Adica lungimea maxima sa fie de 10 cifre si sa contina doar caractere numerice.

Pas 1: Se foloseste cheia de testare “753217532″. Se inverseaza ordinea cifrelor codului CIF precum si a cheii de testare.

Pas 2: Se ignora prima cifra din codul CIF inversat (aceasta este cifra de control) si se inmulteste fiecare cifra cu cifra corespunzatoare din cheia de testare inversata.

Pas 3: Se aduna toate produsele obtinute. Suma rezultata se inmulteste cu 10 si produsul este impartit la 11. Cifra obtinuta, in urma operatiei MODULO 11 reprezita cifra de verificare. Daca in urma impartirii s-a obtinut restul 10 atunci cifra de verificare va fi 0.

Pas 4: Pentru un CIF valid cifra de verificare va trebui sa corespunda cu cifra de control a codului CIF initial.

Categories: Sfaturi Tags:

Validare CNP

March 22nd, 2010 Eduard No comments

CNP – Cod Numeric Personal

Codul Numeric Personal constituie numarul de ordine atribuit de Evidenta Populatiei unui individ la nastere.

Conform articolului 5 din Legea nr.105 din 25 septembrie 1996 privind evidenta populatiei si cartea de identitate, fiecarei persoane fizice i se atribuie, incepand de la nastere, un cod numeric personal care se inscrie in actele si certificatele de stare civila si se preia in celelalte acte cu caracter oficial, emise pe numele persoanei respective, precum si in Registrul permanent de evidenta a populatiei.

Codul numeric personal reprezinta un numar semnificativ ce individualizeaza o persoana fizica si constituie singurul identificator pentru toate sistemele informatice care prelucreaza date nominale privind persoana fizica.

Gestionarea si verificarea atribuirii codului numeric personal revine Ministerului de Interne, prin formatiunile de evidenta a populatiei.

Pentru persoanele fizice romane cu domiciliul in Romania codul de identificare fiscala este codul numeric personal atribuit de Ministerul de Interne.Persoanele fizice straine si persoanele fizice romane fara domiciliu in Romania vor beneficia de numar de identificare fiscala (NIF).

Un CNP este alcatuit astfel :

|S| |AA| |LL| |ZZ| |JJ| |ZZZ| |C|
|_| |__| |__| |__| |__| |___| |_|

C – Cifra de control

ZZZ - Numarul de ordine atribuit persoanelor

JJ - Codul judetului

ZZ - Ziua nasterii

LL – Luna nasterii

AA – Anul nasterii

S – Cifra sexului (M/F) pentru:

1/2 – cetateni romani nascuti intre 1 ian 1900 si 31 dec 1999

3/4 – cetateni romani nascuti intre 1 ian 1800 si 31 dec 1899

5/6 – cetateni romani nascuti intre 1 ian 2000 si 31 dec 2099

7/8 – rezidenti

Persoanele de cetatenie straina se identifica cu cifra “9″

Algoritmul de validare al unui cod CNP

Pas preliminar: Se testeaza daca codul respecta formatul unui cod CNP. Adica prima cifra sa fie cuprinsa in intervalul 1 – 6 sau sa fie 9 pentru straini. Urmatoarele sase cifre trebuie sa constituie o data calendaristica valida in formatul AALLZZ.

Pas 1: Se foloseste cheia de testare “279146358279″. Primele douasprezece cifre se inmultesc pe rand de la stanga spre dreapta cu cifra corespunzatoare din cheia de testare.

Pas 2: Cele douasprezece produse obtinute se aduna si suma obtinuta se imparte la 11.

  • Daca restul impartirii la 11 este mai mic ca 10, atunci acesta va reprezenta cifra de control.
  • Daca restul impartirii este 10 atunci cifra de control este 1.

Pentru un CNP valid cifra de control va trebui sa coincida cu cifra de pe pozitia treisprezece din CNP-ul initial.

Categories: Sfaturi Tags:

Algoritmi de validare

March 22nd, 2010 Eduard No comments

Salut din nou tuturor!
Stateam zilele trecute si ma intrebam de modul in care as putea verifica datele unor clienti pentru validarea lor si de a impiedica falsificarea acestora.
Am cautat diverse materiale si am resuti sa adun destule informatii pentru a realiza un magazin virtual care sa imi testeze tot ceea ce am nevoie in privinta acestor date.
Cand vorbesc despre aceste date, ma refer in primul rand la CNP – Cod Numeric Personal, CIF – Cod de Identificare Fiscala, IBAN – International Bank Account Number, ISBN – International Standard Book Number, Card bancar, NIF – Numere de Identificare Europene. Voi incerca sa realizez in cateva posturi o colectie de algorimti de verificare.

Categories: Sfaturi Tags:

Un mic spot publicitar dragut si amuzant

March 14th, 2010 Eduard 1 comment

Categories: Sfaturi Tags:

Greşeli pentru care putem fi penalizaţi de Google

March 14th, 2010 Eduard No comments

În acest articol voi încerca să realizez un rezumat cât mai sugestiv al multor probleme, la care un site poate fi privit ca şi un mod evident de trişare. Iniţial cum apare acest fenomen?
Foarte simplu. Fie că dumneavoastră, firma sau persoana fizică ce se ocupă de optimizarea site-ului dumneavoastră din diverse motive, fie ele conştiente sau inconştiente, realizează câteva erori. Acestea, privite pe ansamblu, nu reprezintă un risc foarte mare, pentru că uneori graba îşi poate spune cuvântul. După cum se ştie foarte bine, există multe metode de optimizare, dar dorinţa de a aduce cât mai mulţi vizitatori şi de a se ridica în topuri, duce la supraponderarea optimizării.
Ceea ce vreau să spun prin acestea, este că se realizează un raport foarte mare de operaţii de optimizare (ce le voi enumera mai jos). Acestea fiind privite de roboţii Google, pot fi considerate nu ca “exces de zel”, ci ca metode de a “trişa”.
Mereu voi vedea reclame de optimizare cu topic-ul: Locul 1 pe Google în doar câteva zile, sau locul 2 pe google în 7 zile. Mă simt exact ca la piaţă după cartofi.
Eu zic că este adevărat, dar în acelaşi timp le adresez posesorilor de astfel de oferte întrebarea: Pentru cât timp? Contra unui abonament lunar extrem de costisitor ce poate pleca de la sute de euro per total?
Google-ul efectuează considerente puternice pentru mesajele calitative şi nu cantitative.
Aşa cum am promis voi enumera 3 mari posibile cauze de penalizare.

Linkurile ascunse, mascate, codate şi greu de înţeles
Am observat multe astfel de greşeli şi pot spune că şi eu la rândul meu am făcut aceste greşeli. Acest subiect se referă în special la acele link-uri, care sunt puse într-un cadru incorect. Mai exact, mă refer la linkuri a căror culoare este identică background-ului dumneavoastră, sau, care au font extrem de mic.

Cuvintele supraglomerate
Aici este vorba de cantitatea de cuvinte cheie repetate pe o pagină. Încercaţi să aveti un raport de maxim 10%-12% a densităţii unui cuvânt cheie. Este foarte posibil, ca pentru depăşirea acestuia, să fiţi sancţionat. În cazul unui site mic, este acceptabil şi 15-20% maxim pentru a nu fi penalizat. Contează şi dimensiunea site-ului, pentru că, nu putem face asemănare între un site cu o cantitate de 20 de pagini A4 de text şi un site cu doar 5 pagini! Aici, raportul de cuvinte cheie versus text este cu totul diferit.

Linkurile plătite şi conglomerări de link-uri
Linkurile plătite sunt aproape ca şi un mod evident de a trişa. Google-ul îşi menţine, un raport de stabilitate al cantităţii de linkuri dintr-o pagină, pentru a evita artificiile, ce pot mări pagerank-ul. La fel se aplică şi pentru conglomerările de linkuri. Este ca şi cum încerci să ridici un zid fără să întăreşti în prealabil rezistenţa.

Linkurile moarte
O altă posibilitate, pentru care puteţti suferi o penalizare, este că deţineţi în mai multe locaţii web linkuri moarte. Ce înseamnă aceste linkuri moarte?
Linkurile a căror direcţie este invalidă, greşită ori modificată în timp, dar nu şi asupra link-ului, pot aduce penalizøri.
Să presupunem că efectuăm o optimizare. Ideea este că pe baza acelei optimizări, noi păstram o corelaţie cu site-urile partenere, cu care avem schimburile de linkuri (linkurile ancoră). Dacă noi modificăm aceste linkuri în site-ul nostru, optimizarea online føcută va fi invalidă şi va dura o bună perioadă până ce toate legøturile exterioare vor fi verificate de administratorii site-urilor cu care avem schimbul şi să le înlăture. Din aceste motive, Google-ul când observă aceste adrese invalide, va considera o metodă de a trişa
Vă pot indica în cazul în care deja aveţi o penalizare google, să efectuaţi un test cu tool-ul gratuit de la google Webmaster Tools pentru a vedea o posibilă cauză.

Categories: Sfaturi Tags:

Cum să controlaţi zonele ce atrag privirile vizitatorilor pe site-ul dumneavoastră

March 14th, 2010 Eduard No comments

Citeam acum câateva luni un articol apărut pe Internet care determina durata în care un vizitator îşi formează prima părere despre site-ul care l-a deschis. Vizualul propriu-zis era asimilat în termeni de nanosecunde, adică timp mult mai puţin decât îţi ia să clipeşti. Chiar dacă ne place sau nu, fiecare pereche de ochi care privesc site-ul nostru reprezintă un mic judecător. Sentinţa finală e dacă vizitatorul se mai întoarce sau nu. Judecata aceasta se bazează pe puţina informaţie asimilată şi prima impresie este cea care contează. Suntem judecaţi asemenea cărţilor … după copertă.

Într-o epocă mega-saturată de informaţie oamenii iau decizii rapid, mai ales în ce priveste website-urile, şi este normal pentru că fiecare vrea să îşi salveze din timp, sau mai bine zis să nu îl irosească pe lucruri nefolositoare. Tehnicile folosite pe web sunt scanning şi skimming. De aceea este important să captezi privirea rapid. Este de datoria noastră să ştim unde să o facem să se îndrepte şi să oferim informaţie preţioasă acolo. Dacă tot suntem o carte măcar să-l facem pe cel interesat să ajungă şi la cuprins …

Faceţi ceva! Orice !
Când un utilizator ajunge pe site, el caută să vadă dacă el se potriveşte cu ceea ce caută. Ochii lui caută informaţie descriptivă apropo de conţinutul site-ului şi caută meniurile. El nu vrea să caute mult după acestea, şi îşi va petrece câteva secunde făcând scanning. Dacă le găseşte şi îi plac în mod sigur se va aventura mai departe.
Aşa că faceţi vizitatorilor o favoare şi semnalizaţi mare pe prima pagină despre ce este site-ul. Dacă vindeţi electronice puneţi o poză cu un produs electronic. Dacă operaţi servicii acoperiţi o zonă “fierbinte” a site-ului cu informaţie despre acestea. Folosiţi fonturi mari, colorate diferit, tabele cu bordură, faceţi orice ca să atrageţi atenţia acolo. Una din cele mai mari greşeli este să aveţi site-ul încărcat şi să nu oferiţi utilizatorului nici măcar un punct de unde să poată pleca.

Zonele “fierbinţi” ale site-ului
Acestea trebuie să le învăţaţi. Majoritatea site-urilor urmează formate standard. În mare este vorba de ghiduri de navigare în partea superioară a paginii, meniuri pe stânga sau dreapta şi conţinut în mijloc. Nu contează cum au ajuns acestea să fie standard, cert e că utilizatorii sunt familiarizaţi cu aceasta. Asta e bine însă pentru că vă poate ajuta în stabilirea zonelor tari ale website-ului.

Google a făcut un mare serviciu webmasterilor când a pus analiza vizavi de locurile “fierbinţi” unde să pui reclama de la ei. Scopul final este unul singur: să captezi privirea prima dată acolo unde vrei să comunici ceva.
Privirea se va concentra prima dată pe mijloc, în conţinutul paginii şi apoi va urca puţin în sus. Ochii vor urma invariabil acest traseu în prima fază. Mâna cu mouse-ul rămâne de obicei în partea dreaptă a paginii unde de multe ori se efectuează mişcare. După parcurgerea zonei centrale şi sus scanningul se va face în dreapta şi apoi în stânga. Gandiţi-vă bine ce puneţi în aceste zone.

Creaţi mesaje care vând repede
Dacă aţi încercat vreodată să scrieţi un articol veţi vedea că cel mai important aspect al acestuia este titlul. Este primul lucru pe care îl citesc vizitatorii şi dacă titlul reuşeşte să îi plictisească atunci în mod sigur nu vor citi nici articolul, oricât de bun ar fi el.

Un site seamănă foarte mult cu un articol, cu diferenţa că la site ai şi avantajul prezentării grafice. Titlul trebuie să “vândă” potenţialului cititor – trebuie să îl facă mândru, să îl sâcâie, să îi promită, să .. facă ceva care să nu îl lase pur şi simplu să treacă. Mai departe de fiecare dată trebuie să aduci un nou titlu care să facă la fel.
Când vorbesc de titlu nu mă refer la TAG-ul TITLE, sper că am fost bine înţeles. Este vorba de un mesaj central, un mesaj pentru potenţialul cititor, un mesaj care promite răspunsuri la întrebări şi îl face pe vizitator să treacă de la stadiu de unul din site-urile care le caută la unul din site-urile care pot să îl ajute efectiv. Folosind zonele fierbinţi puteţi mult mai uşor să atrageţi atenţia asupra mesajului central.

Imagini
Web-ul este în primul rând o resursă vizuală. Folosim ochii să citim, să navigăm şi să decidem asupra unui website. Folosirea imaginilor în site atrage mult mai uşor atenţia utilizatorului şi poate fi un element de bază în creşterea gradului de atractivitate al website-ului. Controlarea privirii este una şi excitarea ei este altceva, la fel de important.
Din opţiunea de a se uita la un text şi la o imagine, un utilizator va face al doilea lucru. O imagine transmite repede siguranţă, încredere, profesionalism. Şi aici fac o paranteză. Să nu confundăm raţiunile pentru care folosim textul în tacticile de SEO cu faptul că nu folosim imagini. Fiecare imagine folosită trebuie sa aibă în cod tag-ul ALT (descrierea) pentru a fi validă conform normelor W3.

Testul de 2 secunde
Simplu şi eficient. Luaţi pe cineva care nu a mai văzut niciodată site-ul vostru şi puneţi-l 2 secunde să se uite la el (nici nu trebuie să se încarce tot site-ul). Nu îi spuneţi ca veţi inchide browser-ul. Apoi puneţi un set de întrebări :

* Care au fost primele impresii despre site?
* Cu ce impresie ai rămas?
* Ştii despre ce era vorba în site-ul acesta?
* Arată profesionist?
* Ai avut încredere în site?
* Unde te-ai uitat?
* Ce ai reţinut?

Un set de răspunsuri oneste la aceste întrebări vor rezolva multe din dilemele voastre. Şi mai ales vă vor spune de ce aveţi nevoie în continuare.

preluat de la Claudiu Gamulescu

Categories: Sfaturi Tags:

Bad Behavior has blocked 10 access attempts in the last 7 days.