Bir müşteriden inatla gelen doğrulama isteği üzerine T.C. kimlik no'sunun rakamsal olarak "kesinlikle" doğru olmadan formun validate etmemesi için ufak bir araştıma sonucunda şunu buldum.
TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basmağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 10. haneyi verir.
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 11. haneyi verir.
Birkaç link ötesinde de şu kodlara rastladım
C#
|
|
VB
|
|
|
|
Arada ismi geçti bari atlamayayım dedim.
|
|
önceki yazı CSS'de Arkaplan : Bilmeniz Gereken Her Şey |
sonraki yazı jquery ile basit bir form validator |
buyrun. bu da tarafımdan javascripte çevrilmiş hali.
|
|
Bu da benden PHP+RegExp hali:
|
|
PHP olmasa satır satır kod yazacaktım. RegExp PHP ile güzel ;)
http://www.kavramca.com/index.php?k=28
bu da sql kodu...
koda şunun için bir ekleme yapsanız iyi olacak:
ilk 9 rakamı birbirine eşit ve son 2 rakamı 0 olan Tc. Kimlik No'lar kabul edilmemelidir.
Not: Eğer çoklu üyelikleri engelleme amaçlı kimlik no gibi bir aracı kullanmak istiyorsanız, size tavsiyem hiç denememeniz. Ben denedim. Hata ettim.
Bu da R kodunda yazılmış: R'da TC kimlik algoritması.
tc kimlik no ile üniversite öğrencisi olup olmadığı devletin verdiği kpss hizmetiyle öğrenilebiliyor. bu hizmetten yararlanmak için şirket olmalısın (şahıs şirketi hariç). Ayrıca bu hizmete bağlanacağın statik bir ip belirtmelisin.
mantığı anladım, php ile kendi aile fertlerimi ileri geri nasıl bulabileceğimi de buldum...
gel gelelim test edip, bu kimlik id sinin kime ait olduğunu bulacağım bir sayfa bulamadım...
yine de güzel bir şeydi... aklımdan, bu sistem de kırılır diye geçiyordu...
SSK'yı kullan
Yok doğru olan 7 katı. ama burda farklı bir yol izlenmiş. Direkt formul bu şekilde. Kendi projemde de bu şekilde düzenlemiştim.
Q1 = ((c1+c3+c5+c7+c9)*7 - (c2+c4+c6+c8)) Mod 10
Q2 = ((c1+c2+c3+c4+c5+c6+c7+c8+c9+Q1) Mod 10
Yukarıda anlatılanlar kaynaklara dayalı anlatımdı.
TC kimlik numaram algoritmaya uymuyor
yeterince test yapmamış olsam tamam derdim ama. 20 Numaradan 20 side geçince testten. doğruluğuna inanıyorsun...
golduck'ın algoritmasında sorun yok. denedim, çalışıyor.
Peki bu hash nasıl bulundu? Birilileri deneme yanılma yoluyla mı buldular yoksa bilimsel yollar mı izlendi? Yoksa devlet mi yayınladı? Ya da bunu yapanlar arkadaşlarını falan mı söylediler?
Ben bi hash'ı çözmek istiyorum da.
1-) Bunu yapanlarda yazılımcılar. Yazılımcı bir arkadaşına söyler, o bir başkasına vs. vs. uzar gider, buralara kadar gelir...
2-) Ayrıca bu işin sanatını bilen şifre kırıcılar var. Onlarda çözmüş olabilir.
Bu kadar saçma bir algoritma olamaz. Sözüm yukarıda algoritmayı yazan arkadaşlara değil, TC kimlik numarasının son iki hanesinin ilk dokuz hanesine matematiksel olarak bağlı olması saçmalık. Son iki veya üç hanenin rastgele seçilmiş olması gerekirdi. Şu haliyle basit bir döngü yardımıyla bir sürü gerçek TC Kimlik numarası üretilebilir. Oysa dediğim gibi son 3 hane rastgele seçilmiş olsaydı, üretilen herhangi bir numaranın gerçek olması ihtimali binde bir olurdu.
Tabi rastgele üretilseydi de kontrol yapılması gerekince kimse kontrol edemeseydi doğru yanlış mı asla bilemeseydik. Güzel mantık.
peki ilk 9 hanenin üretimindeki algoritmayla ilgili fikri bilgisi olan var mı ? Yoksa o kısım tamamen rasgele mi üretiliyor?
Formülleri incelerken TC Kimlik Numarasının son 2 hanesinin sadece doğrulama amaçlı olarak orada olduğuna değinmiştim. O nedenle 11 basamaklı TC Kimlik Numarasının son 2 hanesini attığımda geriye kalır sağdan 9 basamaklı başka bir sayı kaldı. Bu sayıdan 29999 çıkarttığımda kütükte benden 1 önceki birey numarasına sahip olan kişinin TC Kimlik Numarasının ilk 9 basamağını bulmuştum. Yine o sayıdan da 29999 çıkardığımda ondan bir önceki kişinin TC Kimlik Numarasının ilk 9 basamaklı sayısını bulmuştum.
...
...İşin özeti şu; TC Kimlik Numaraları her ne kadar sıralı gözükmese de aslında birey bazında ardışık. Tek fark, sayının 1'er 1'er değil, 29999'ar 29999'ar artıyor olması...
Super! Keske dogrulama öncesi kesfetseydik =)
sohbet süper olmuş, katkıda bulunan dostlara teşekkür ederim.
Makale sahibi demiÅŸ ki;
VB kodlarını kullanmak istedim ancak rakamları string olarak algılamak gibi garip bir hata ile karşılaştım.
garipliği önce kendinizde aramalısınız! nitekim;
Function TcDogrulaV2(ByVal tcKimlikNo As String) As Boolean
tcKimlikNo isimli parametre zaten string olarak yakalanmış, string olarak algılamasaydı esas gariplik o zaman yaşanırdı. altını çizdiğim ifadeyi integer olarak değiştirseydiniz başka başka gereksiz fonksiyonlar kullanmanız gerekmez visual basic için garip betimlemesi yapma ihtiyacınız da kalmazdı.
@lazaronnie
düzelttiğin için teşekkür ederim arkadaşım. Ama sorunu kendimde arayamıyorum malesef. Çünkü "rakamları string olarak algılamak gibi garip bir hata ile karşılaştım." derken ilk belirttiğim vb kodu, yani bana ait olmayan kod içerisinde toplama işlemi yapıldığında string değer veriyordu. (1+3 = 4 yerine 1 + 3 = 13 gibi). bu kodu yazan arkadaşın bilgisini göz önüne aldığımda bu hata ile karşılaşmam evet garip geldi.(ki .net kullanmakta gerçekten yeniyim) ben de kendi kodumda o sorunu giderdim ve sunumumu yaptım.
Neyse dikkatin için tekrar teşekkür ederim.
Sert çıktıysam özür dilerim, .net'te yeni olduğunuzu bilmiyordum..
bilgiler süper makaleyi yazana ve bize ulaştırana teşekkürler ;)
bu algoritmayı beğenmeyen sevgili arkadaşlar, sizce nasıl bir algoritma yazılabilirdi. Algoritma konusunda iyi değilim, ancak merak ettim. Fikirlerinizi bir alıyım dedim.
@darkhorn, @moratmoon
Sahip olduğun bir kredi kartının numarasının ilk 12 rakamı sıralı bir sayının rakamları olsa, geriye kalan rakamlar bu sıralı sayılara istinaden belli bir algoritma ile üretilen rakamlar olsa, bu algoritmanın ne olduğu da bilinse, kredi kartı kullanmaya devam eder miydin?
İşte bu yüzden son iki rakamın diğerlerine bağlı olmasının saçma olduğunu savunuyorum.
@algorian, amaç numarayı gizlemek, şifrelemek değil. amaç numaranın yanlış yazılmasını önlemek. örnek vereyim. kendimden örnek vereyim, ben öğrenciyim, öğrenci numaram da 1234567 gibi 7 basamaklı bişey. son rakamı ilk 6 rakamına göre oluşturuluyor. her ay yurt parasını yatırmaya gidiyorum, numaramı söylüyorum öyle ödeniyor, aşağı yukarı 5-10 ödemeden birinde göevli numarayı yanlış algılıyor. düşün ki 123456 olsaydı öğrenci numarası, başkasının yurt ücretini ben ödeyecektim. onun önüne geçmek için 7. haneyi oluşturmuşlar. o yüzden numarada yanlış olduğunda ödemeyi yapamıyor banka görevlisi. aynı şey tc kimlik numarası için de geçerli. eğer o sondaki 2 numara olmasa kaç kişinin başı yanardı haberin var mı?
öğrenci numaraları şöyle gidiyor:
1234564
1234571
1234588
1234598
1234609
1234614
Kredi kartı örneği çok yersiz olmuş, kredi kartı numarası bilsen bile kredi kartı sahibinin adını soyadını, hangi kart türü olduğunu, son kullanma tarihini ve cvc numarasını bilmen gerekir. ikincisi o kredi kartı numarasının son iki rakamı bir algoritmaya göre oluşturulsa son iki rakamını bilmen için ilk 10 rakamını bilmen nerekecek, kim nerden bilecek ki onu?
bir de tc kimlik numarasının bilinmesi çok da zararlı değil, kim ne yapabilirki tc kimlik numarasıyla? her tc kimlik numarasını gösterene sanki kredi kartı veriyorlar. onun için adını soyadını, doğum yeri tarihi, adresi falanı filanı bilmen lazım ki sahtekarlık yapabilesin... ki onu da nerden öğreneceksin, kaldı ki ilk hash'i değil de ilk rakamları nerden öğrenecen.
yani şimdi diyoum ki, sen bu algoritmayı biliyorsun, ne yapabilirsin ki? gidip biisinin kimliğine bakıp ilk 9 hanesini mi alacaksın? sonra da son iki hanesini mi hesaplayaca? e bakmışken son iki hanesine de bak artık.
yoksa kafana göre bir numara sallayıp tc kimlik numarasının tamamını mı bulacaksın? buldun, ne yapabilirsin ki o numarayla, kime ait olduğunu nereden bileceksin? ragele bir şahsiyet oluşturup hesap mı açcaksın? rasgele bir kimlik oluşturdun diyelim, bankalar içişlerinin veritabanına bağlanıyorlar kimliği kontrol etmek için, yakayı ele vereceksin.
yani bana nasıl süistimal edilebileceğini söyle sana nasıl yanıldığını söyleyeyim.
@darkhorn bazı sitelere üye olurken tckimlik numaranın sayısal değerine göre üyeliği kabul ediyor. O sitelere kendi tc kimlik numaranı vermek istemiyorsan bu algoritmaya göre oluştur bi tckimlik onunla gir :) bununda hiçbir zararı yok.
Key odemeleri aciklanirken verilen isim ve TC kimlik numaralari ile buyuk bir dolandiricilik yapildimi bakmak lazim.
@shibbytr bazı siteler de başvuru yaparak nüfus kütüklerine sayısal erişim izni alıyorlar.
Sizi üye yaparken isim soyisim falan sormuyorlar. Direk tc nosu istiyorlar. Ajax yardımıyla nüfus kütüklerinden isminizi çekebiliyorlar bu şekilde. Eğer böyle bir siteye aynı anda tc ve isim soran uygulama eklenirse verdiğiniz tc nosuna yanıt olarak dönen isim bilgisiyle sizin verdiğiniz bilgi birbirini tutmaz ise web siteleri size ait olmayan bir tc nosunu girdiğinizi anlayabilecektir.
Kırılmaz diye bir parola yoktur. sadece kırması uzun süre parola vardır.
Merhaba arkadaşlar, Bu yazıyı okuduktan sonra PHP içinde T.C. kimlik no sorgulama nesnesini oluşturdum.
Kodaman'ı yeni kullanmaya başladığımdan buraya eklemedim. Sizce eklemem doğru olur mu? Aynı konu çünkü sadece programlama dili farklı.
Maalesef ki birçok konuda olduğu gibi bunda da resmi makamlar sınıfta kaldı. Bu algoritmayı geliştiren arkadaşların zekası ile ilgili yorum yapmak istemiyorum. Kimlik no doğrulaması için birkaç hanenin rastgele oluşturulması ve diğer hanelerle hiçbir bağıntısının olmaması gerekiyordu.
Şimdi, dünyada herhangi birisi kolayca TC vatandaşlarının kimlik numara listesini oluşturabilir. Akrabalık bağından yola çıkarak ilişki ağaç yapısı oluşturabilir. SGK sitesinden zaten çalışma ile ilgili tüm kayıt dökümleri de alınabiliyor.
Devletin güvenlik kurumlarından kişisel bilgilere de ulaşabiliyorsa, akıl almayacak geniş bir arşiv sahibi olabilir.
Kişisel bilgilerin güvenliği konusunda, resmi kurumların hassasiyetini maalesef ki zayıf görüyorum. Örneğin nüfus müdürlüğü gibi her ilçede bulunan bir kurumda sıradan bir memuru tanıyorsanız, kimlik numarasını bildiğiniz birinden çapraz aramalar yaparak geniş bir soy kütüğü çıkarabilirsiniz.
Emniyetteki GBT kayıtları ise şaşırtıcı derecede geniş bir kişisel bilgi havuzu. Ne tür müzik dinlediğinize kadar bulabilirsiniz. Sıradan bir polis memuru bu kayıtlardan kolayca bilgi alabiliyor.
Resmi kurumlarımızdaki memurlarımızın duyarlılığı ve kişilik yapısı maalesef ki şu yazıda olduğu gibidir.
Resmi kurumların hassasiyeti arttıkça sorumlu memurların davranışları ve bilgi erişimleri daha fazla hassasiyet gerektiriyor. Fakat maalesef ki tecrübeler bunun aksini gösteriyor.
Banka kartı, cep telefonu sim kartı vb üretimi yapan şirketlerdeki güvenlik hassasiyeti konusunu bilirsiniz. Resmi kurumlarda ise, geleneksel memur laçkalığı değişmiyor.
Üç tane güvenlik kurumumuz var. Bunlardan herhangi birinde bilgi erişim imkanı olan bir memur tanıdığınızda, kişisel bilgilerin nasıl gevşekçe eğlence ve sohbet konusu yapıldığına şahit oluyorunuz. Örneğin, ODTÜ'deki dini eğilimi olan öğrencilerin hangi kriterler nedeniyle fişlendiği, kendileri hakkında hangi bilgilerin toplandığı bilgilerine sıradan birisinde rastlayabilirsiniz.
Kişisel bu şekilde açık olması bir ulusal güvenlik skandalıdır. Ama Türkiye'de gerek toplum yaşantısında gerekse devlet kurumlarında birçok şey gibi bu da önemsiz bir ayrıntı. Tıpkı rüşvet ve yolsuzluğun yaygın olması ve önlemek için ciddi bir çabanın olmaması gibi.
bir de tc kimlik numarasının bilinmesi çok da zararlı değil, kim ne yapabilirki tc kimlik numarasıyla? her tc kimlik numarasını gösterene sanki kredi kartı veriyorlar
Kişisel bilgilerin güvenliğinin korunması ve üçüncü şahısların bu bilgileri yasadışı kullanmasını engellemek amacıyla başlatılmış olan şifre uygulaması Haziran 2010 tarihine kadar ertelenmiş olup bu tarihte söz konusu bilgilerin yine sadece kişiye özel görüntülenebilmesi amacıyla yeni bir güvenlik sistemi devreye alınacaktır.
SGK çalışması için yorum yapmak istemiyorum.
@kaleidoskop
Kimlik no doğrulaması için birkaç hanenin rastgele oluşturulması ve diğer hanelerle hiçbir bağıntısının olmaması gerekiyordu.Belki de vardır, olmadığını nerden biliyorsun?
diğer hanelerle hiçbir bağıntısının olmaması gerekiyorduolmadığını varsayabilirsin, aynı kapıya çıkıyor.
ben "başbakan aptal değil" dedim, sen ordan gitmişsin "başbakan aptal" sözünü almışsın. metnin bir kısmına bakarsan yanlış anlarsın. bak ben sana tam olarak ne yazdığımı söyleyeyim:
bir de tc kimlik numarasının bilinmesi çok da zararlı değil, kim ne yapabilirki tc kimlik numarasıyla? her tc kimlik numarasını gösterene sanki kredi kartı veriyorlar. onun için adını soyadını, doğum yeri tarihi, adresi falanı filanı bilmen lazım ki sahtekarlık yapabilesin.. ki onu da nerden öğreneceksin, kaldı ki ilk hash'i değil de ilk rakamları nerden öğrenecen.
tc kimlik no algoritmasında amaç daha önce defalarca bahsedildiği gibi, kimliği doğrulamak değil numarayı doğurulamak.
Aslında belirtmeme gerek yok, ama önemini vurgulamak için tekrarlamak zorundayım. TC kimlik no her vatandaşın özel bilgisidir. Ve tüm kişisel bilgilerine ulaşılabilecek bir anahtar özelliğindedir. Bunun için hem gizliliğinde, hem de kişisel bilgilere erişim noktalarında son derece güvenlik sağlanmalıdır.
Sınav sonuçları, key ödemeler, memur atamaları gibi resmi açıklamlarda TC kimlik numaraları çarşaf çarşaf internette yayınlanıyor. Hem devlet kurumları yayınlıyor, hem de özel site sahipleri.
Kişisel verilere erişim konusuna gelince; SGK portalı(çalışma bilgileri), YSK portalı (güncel ikamet adresi), ve devlet daireleri (kişiliği zayıf , görev bilinci olmayan memur + denetimsiz bilgiye erişim altyapısı) maddelerine de önceki yorumumda değinmiştim.
TC kimlik numarasının son 2 hanesinin nasıl basit bir algoritmaya sahip olduğu üstteki yorumlarda belli. İnsanların para yatırma gibi işlemlerinde TC kimlik no girildikten sonra, zaten kontrol için isim ve soyadınız söylenerek teyit ediliyor. Hiçbir sebep bu 2 hanenin bu kadar basitçe üretilmesini haklı göstermez. İlgili bilişim uzmanı arkadaşların zeka düzeyiyle ilgili endişelenmekte haklıyız.
Kimlik no doğrulaması için birkaç hanenin rastgele oluşturulması ve diğer hanelerle hiçbir bağıntısının olmaması gerekiyordu.
Belki de vardır, olmadığını nerden biliyorsun?
diğer hanelerle hiçbir bağıntısının olmaması gerekiyorduolmadığını varsayabilirsin, aynı kapıya çıkıyor.
metnin bir kısmına bakarsan yanlış anlarsın
yazı tc no algoritmasıyla ilgili, kaybolan kimliklerle ilgili değil. kaybloan kimliklerde tc kimlik numarasının son iki hanesi diğer hanelerle ilişkili olsa ne olur olmasa ne olur?
tc kimlik no algoritmasında amaç daha önce defalarca bahsedildiği gibi, kimliği doğrulamak değil numarayı doğurulamak.
Böyle durumlar için de 'vatandaşın hata yapmasını önlemek' demek, vatandaşı geri zekalı yerine koymak demektir.
Neden böyle bir kanıya vardın anlamadım açıkcası. Her site email validation yapıyor email istediğinde. Vatandaş zeka özürlümü de biz bunu yapıyoruz. Vatandaş bilmiyormu kendi email adresini yazmasını. İstediğin her formda istediğin her bilgiyi talep edebilirsin. Oraya o değeri girmek yada girmemek vatandaşın kendi isteği. Sitenden yararlanmak istiyorsa ya kendi TC kimlik numarasını girecek yada yukarıdaki şartlara uyan bir numara üretecek. Bütünüyle kendi insiyatifine kalmış.
Son olarak TC kmilik sadece kişiye özel, unique bir numara. 1 numara 1 insanı temsil ediyor. ve sadece bu numara ile kimsenin hiçbirşeyini çalamazsın. Hiçbir banka TC kimlik ile çalışmaz. Kendi hesap numaraları var. Hoş şimdi de IBAN a geçtiler ve o da doğrulama yapılabilen bir numara.
1. Web sitelerinin bir kısmında kimlik bilginizi girdiğinizde zaten hiçbir engelle karşılaşmadan bilgi görüntüleyebiliyorsunuz. Fazladan iki hane ekleyip doğrulama yapmanın pek bir anlamı kalmıyor. 9 haneli numra olsaydı iki sakıncası olurdu. a)Kimlik numarası yanlış girildi. bu durumda zaten uyarı mesajı çıkacaktır. b)Başkasına ait kimlik no girildiği için başakasına ait bilgiler görüntülendi. Zaten kimlik numaralarının heryerde çarşaf çarşaf yayınlandığını, 29999 ekleyip çıkararak soy kütüğü çıkarılabildiğini, kmilik numaralardan kişisel bilgilerin herkesçe elde edilebildiğini, resmi kurumlarda kişisel bilgilerin erişiminde bir engel omadığını biliyoruz.
2.Diyelim ki banka şubesi, ÖSYM bürosu gibi gibi sosyal iletişim yoluyla kimlik numaranızı kullanacaksınız.
Dediğim gibi, zaten memur arkadaş olası hataları önlemek için kimlik numaranıza karşılık gelen ad soyadı size hatırlatıyor.
İşte bu durumda ben, son 2 hanenin hangi düşünceyle oluşturulduğunu merak ettim. Aklıma gelen en mantıklı sonuç şu:
Kimlik numarasının algoritmasını hazırlayan arkadaşlar, nasılsa insanlar bunu düşünmez diye basitçe bir yapı oluşturdular.
Bu en çok da şurada kendini belli ediyor, iki kimlik numarası arasında 29999 fark var.
Hayır, madem ardışık olacak, neden 29999? Neden 30000 veya 10000 değil?
Diyelim ki bulunabilme olasılığını düşürmek istedin. Neden biraz daha karmaşık bir "ardışık dizi" üretmedin? Bu algoritma ile kimlik no üretmek için hesaplamayı bilgisayar yapacak, insan değil ki!
Varsa daha mantıklı bir açıklama buyrun.
basit bir açıdan bakacağım.
demek ki son iki rakamın belirtilen koşullara uyması 29999 ar artış ile gerçekleşiyor. demek ki başka bir ardışık dizi kullansalardı bu son iki rakam kuralı geçersiz oluyordu.
son iki rakam olayına gelince illa ki bir sebebi vardır. madem bu kadar merak ediyorsunuz, nvi ye bir sorun. buraya çemkirmeniz hiç bir sonuç getirmeyecektir.
ayrıca yukarıda yazdığınız
İlgili bilişim uzmanı arkadaşların zeka düzeyiyle ilgili endişelenmekte haklıyız.
vay vay vay neler var burada neler...
Enteresan bir makale. Ne kadar gerekli orası tartışılır.
Güzel bir zihin jimnastiği olmuş.
Konu Güzel olmuş :)
kontrol ile ilgili olarak :
1) kullanıcı kaynaklı hataları kısa sürede server ı kasmadan kontrol etmeye yarar.. düşününki herhangi bi kurumda tc kimlik nosunu sölediniz, personel no yu yazdı ve enter a bastı.. program nvi ye bağlanacak, nvi veri tabanında sorgulayacak, olmadığını görecek, sonucu kuruma geri yollayacak...
-> kontrol kodu sistemi sayesinde :
--kurum hazırladığı programa kontrol doğrulamasını koyarak yukarıdaki işlemler zincirine başlamadan kullanıcıyı uyarır.
-- nvi de de zaten sorgulama yapıldığında çok buyuk ihtimalle veri tabanından veri çekmeden once bu doğrulamayı kullanırki db ye aşırı yüklenilmesin..
2)ürün barkod sisteminde de kontrol kodu vardır, buraya ek olarak algoritması çok daha karışıktır, ve yukarıdaki açıklamanın mantığı ile aynıdır. veri tabanını yormadan localde bazı şeyleri kontrol etmek... eger ki kasiyer barkodu okuturken (ürün poşetinin kırışık olması, barkodda leke olması gibi sebeplerden dolayı barkod yanlış okunursa) ürünün tekrar okutulmasını ister...
doğrulama kodu olmadan üretilen rakamlar(algoritmalar) sisteme ciddi bir yük getirecek kullanıcı hataları ile boğuşmak zorunda kalır. kaldı ki nvi nin (sadece) kontrol numarasını açıklamasında(en azından nvi den veri çeken kurumlara->onlarda başkalarına(!) :) hiç bir sakınca yoktur hatta faydalı olacaktır..
son olarak herhangi bir sitede kullanıcı girişinde konulan doğrulama kodunun da mantığı aynıdır.. hatırlarmısınız bilmem ttnet aylık kota sorgulama sayfasına girmek ölüm idi(birileri tarafından devamlı sorgu gönderilen sitenin veri tabanı buna ne kadar dayanabilirki)
öss sınav sonuçlarının açıklanacagı gün o dakikalarda sınav sonucu bekleyen adaylar da sayfanın geç açıldığından-açılmadığından şikayetcidir..
çok sorgu çok sorun getirir, baştan kesmek en iyisi :)
Çok farklı bir makale olmuş. Teşekkürler uygulamalar için.
10. ve 11. hanelerin doğrulama kodu olma ihtimali var. Bunun amacı IBAN numaralarındaki doğrulama sayıları ile aynı olmalı. Keşke Mernis TCKN'yi kullanacak bilişimciler için bununla ilgili bir açıklama yapsaydı. Yoksa hepimizin kendine göre bir fikri var.
Genel olarak 2. bloğun 30'ar azalırken 3. bloğun 1'er arttığı yani numaralar arasında 29999 fark olduğu söylemiş. Peki o zaman 9 hane ile (999milyon/29999) sadece 34 milyon kişinin adreslenebildiğini de fark etmiş olmalısınız. Hatalımıyım ?
Çoğu kişi neden bir algoritmaya bağlı üretildiğinden yakımış. Bu hiç önemli değil 9 haneli bir sayı kümesi içinden 150 milyon sayı geçerliyse (1/6 oranında) emin olunki okadar büyük bir kümeden geçerli bir bağıntı üretilebilir. Yani, tckn rastgele üretilse bile sayı uzayının yeterince büyük olmaması ve buna karşın tckn kümesinin uzaya göre gereğinden büyük olması nedeni ile rahatlıkla bir bağıntı/formül üretebilirsiniz. Bu algoritmayı sorun olarak görmeyin bence.
Ayrıca PHP doğrulama kodunu sayfandan görebilirsiniz.
http://www.tankado.com/php-ile-tc-kimlik-numarasini-dogrulamak/
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.