MRZ ayrıştırıcı ve kontrol basamağı hesaplayıcı

Bir pasaportun, kimlik kartının veya vizenin makine tarafından okunabilir bölgesini (MRZ) yapıştırın: TD3, TD2 ya da TD1. Format algılanır, her alan okunur ve her ICAO 9303 kontrol basamağı (check digit) yeniden hesaplanıp basılı olanla karşılaştırılır. Her şey tarayıcınızda çalışır; hiçbir veri sayfadan çıkmaz.

Makine tarafından okunabilir bölge nedir

Makine tarafından okunabilir bölge (MRZ), pasaportun veya kimlik kartının alt kısmında yer alan, ICAO Doc 9303 ile standartlaştırılmış sabit genişlikli satırlardan oluşan bloktur. Belge numarasını, düzenleyen devleti, adı, uyruğu, doğum tarihini, cinsiyeti ve son geçerlilik tarihini, her biri sabit bir konumda olmak üzere kodlar ve okumayı doğrulayan kontrol basamakları (check digit) içerir.

TD1, TD2 ve TD3'te her alan nerede durur

Konumlar, ICAO 9303'ün numaralandırdığı gibi her satırda 1'den başlayarak sayılır. Her kontrol basamağı koruduğu alanın hemen ardından gelir; bileşik basamak, bulunduğu satırın son karakteridir.

Üç MRZ düzeninde alanların ve kontrol basamaklarının konumları
AlanTD3 (pasaport)TD2TD1 (kimlik kartı)
Belge kodu1. satır, 1–21. satır, 1–21. satır, 1–2
Düzenleyen devlet1. satır, 3–51. satır, 3–51. satır, 3–5
Ad1. satır, 6–441. satır, 6–363. satır, 1–30
Belge numarası2. satır, 1–92. satır, 1–91. satır, 6–14
kontrol basamağı2. satır, 102. satır, 101. satır, 15
Uyruk2. satır, 11–132. satır, 11–132. satır, 16–18
Doğum tarihi2. satır, 14–192. satır, 14–192. satır, 1–6
kontrol basamağı2. satır, 202. satır, 202. satır, 7
Cinsiyet2. satır, 212. satır, 212. satır, 8
Son geçerlilik tarihi2. satır, 22–272. satır, 22–272. satır, 9–14
kontrol basamağı2. satır, 282. satır, 282. satır, 15
Kişisel numara2. satır, 29–42
kontrol basamağı2. satır, 43
Bileşik kontrol basamağı2. satır, 442. satır, 362. satır, 30

Kontrol basamağı nasıl hesaplanır

  1. Basamağın koruduğu alanı alın: belge numarası, doğum tarihi, son geçerlilik tarihi, kişisel numara ya da bileşik basamağın kapsadığı aralığın tamamı.
  2. Her karaktere değerini verin: rakam kendi değerini alır, harf alfabedeki sırasının dokuz fazlasını (A = 10, Z = 35), dolgu karakteri < ise sıfırı.
  3. Her değeri konumunun ağırlığıyla çarpın. Ağırlıklar alan boyunca 7, 3, 1 sırasıyla tekrarlanır ve ilk karakterde 7 ile başlar.
  4. Çarpımların hepsini toplayın.
  5. Kontrol basamağı, bu toplamın 10'a göre modudur: toplamın son rakamı.

Örnek belgenin pasaport numarası AM7304518 üzerinde adım adım hesaplama (kimseye ait olmayan, uydurma bir belge):

7-3-1 ağırlıklandırmasının örnek bir belge numarası üzerinde karakter karakter uygulanışı
KarakterDeğerAğırlıkÇarpım
A10770
M22366
7717
33721
0030
4414
55735
1133
8818
Toplam, ardından 10'a göre mod214 → 4

Yani o bölgede AM7304518 değerinden sonra basılan basamak 4 olur. Yukarıdaki TD3 örneğini yükleyin; ayrıştırıcı aynı sayıyı gözünüzün önünde yeniden hesaplar.

Bileşik kontrol basamağı

Bir basamak daha bölgenin büyük bölümünü tek seferde kapsar: bileşik basamak. Aynı yöntemle, hiçbir basamağın korumadığı alanları atlayan bir aralık üzerinden hesaplanır; TD1'de bu aralık iki satıra yayılır ve elle yazılmış ayrıştırıcılar genellikle tam burada hata yapar. Alan basamaklarının hepsi doğru çıkıp bileşik basamağı tutmayan bir bölge, parça parça doğru aktarılmış ama yanlış birleştirilmiştir.

Basamakların kapsamadığı şeyler

Hiçbir kontrol basamağı adı kapsamaz; düzenleyen devleti de kapsamaz. İkisinden birindeki okuma hatası fark edilmez: aritmetik yine tutar. Bu yüzden belgenin basılı yüzünü de okuyup iki okumayı karşılaştırmak, basamakların yakalayamadığını yakalar.

Sık sorulan sorular

MRZ nedir?

Makine tarafından okunabilir bölge (MRZ), pasaportun veya kimlik kartının alt kısmında yer alan, ICAO Doc 9303 ile standartlaştırılmış sabit genişlikli satırlardan oluşan bloktur. Belge numarasını, düzenleyen devleti, adı, uyruğu, doğum tarihini, cinsiyeti ve son geçerlilik tarihini, her biri sabit bir konumda olmak üzere kodlar ve okumayı doğrulayan kontrol basamakları (check digit) içerir.

Bu araç hangi formatları destekliyor?

ICAO 9303'ün üç düzeninin tamamını: TD3, pasaportlardaki 44 karakterlik iki satır; TD2, 36 karakterlik iki satır; TD1 ise kimlik kartı veya ikamet iznindeki 30 karakterlik üç satır. Bileşik basamağı olmayan iki vize düzenini, MRV-A ve MRV-B'yi de okur. Format, satır sayısından ve satırların uzunluğundan algılanır ve formatın içerdiği her kontrol basamağı yeniden hesaplanır.

Bir kontrol basamağı neden tutmaz?

Neredeyse her zaman, koruduğu alandaki bir karakter yanlış okunduğu veya yanlış yazıldığı için: 0 yerine O, 8 yerine B, satır sonunda kaybolmuş bir dolgu karakteri. Tablo, bölgede basılı olan basamağı verilerden çıkan basamağın yanında ve basamağın kapsadığı alanla birlikte gösterir. Bir alan basamağı tutup bileşik basamak tutmuyorsa alanların arasındaki karakterlere bakın: bileşik basamak, alan basamaklarının kendisini de kapsar.

Bölgeyi bir fotoğraftan okuyabilir mi?

Hayır. Bu sayfa yapıştırdığınız metni okur ve hiçbir şey tarayıcınızdan çıkmaz. Bölgeyi ve basılı sayfayı bir fotoğraftan okumak, tanıma API'sinin işidir: görselle birlikte tek bir HTTP çağrısı yapılır ve alanlar, aynı kontrol basamakları zaten doğrulanmış olarak JSON biçiminde döner.

Verilerimden herhangi birini saklıyor musunuz?

Hayır. Yapıştırdığınız bölge, kendi tarayıcınızda çalışan kodla ayrıştırılır: hiçbir şey yüklenmez ve onu taşıyan hiçbir istek yapılmaz. Bu sayfa statik bir dosyadır; yüklendikten sonra yaptığı tek istek, üstte gösterilecek bir hizmet duyurusu olup olmadığını sormaktır ve bu çağrı yazdığınız hiçbir şeyi taşımaz. Tanıma API'si ayrı bir şeydir ve onu bilerek çağırmanız gerekir.

Buradan nereye

  • MRZ oluşturucu – test verileriniz için doğru kontrol basamaklarına sahip geçerli bir bölge oluşturun.
  • TD1, TD2 ve TD3 – üç format, her birinin satır ve karakter sayısı ve standardın her birini nerede tanımladığı.
  • Belgenin tamamını okuyun – kodlanmış yüzün yanında basılı yüz de, tek istekte ve hesap gerekmeden.
  • Ülkelere göre pasaport OCR – bu API'nin okuduğu düzenleyen devletler, her biri kendi örnek bölgesiyle.