TC Algoritma Doğrulama
Dinamik Network
Ana SayfaC#kz_g_n
TC Kimlik No Doğrulama Algoritması
TC Kimlik numaraları, her Türk Vatandaşına doğumunda verilen 11 karakterli bir sayıdır ve benzersizdir. Yani aynı TC Kimlik numarasından bir tane daha yoktur. Ben önceleri hep bir sıraya göre gittiklerini düşünüyordum
mustafabukulmez_avatarMustafa Bükülmez
18 Mart 2020
Okuma süresi: 3dk, 11sn
655
+ -
TC Kimlik No Doğrulama Algoritması
Merhaba arkadaşlar. Yoğunluğumdan dolayı uzun zamandır bir yazı yazamıyordum. Bir süre düşündüm ne yazsam diye aklıma bu yazı geldi. Gelin Tc Kimlik No Doğrulama Algoritması nedir ona bakalım.
TC Kimlik No Doğrulama Algoritması
TC Kimlik numaraları, her Türk Vatandaşına doğumunda verilen 11 karakterli bir sayıdır ve benzersizdir. Yani aynı TC Kimlik numarasından bir tane daha yoktur. Ben önceleri hep bir sıraya göre gittiklerini düşünüyordum. Ancak bir gün ailemden iki kişinin TC Kimlik numaraların benzerlik gösterdiğini fark ettim. Bu benzerlik ilk 1,2,3 hane ile 7,8,9 hanelerin aynı olmasıydı. O gün aslında sıradan gitmediğini belirli bir algoritmaya göre verildiğini anlamıştım.
Şimdi gelelim bu TC No Doğrulama algoritmasına.
TC Kimlik No Doğrulama Algoritması
Bu algoritma 5 adımlı yani 5 şart var. Bu 5 şartın hepsine de uyulması gerekiyor.
1 – TC Kimlik Numaraları 11 karakter olmak zorundadır.
2 – Her hanesi bir rakam olmaldır.
3 – İlk hanesi 0 (sıfır) olamaz
4 – 1, 3, 5, 7, 9 basamaklarının toplamının 7 katından, 2, 4, 6, 8 basamaklarının toplamını çıkarttığımızda elde ettiğimiz sonucun 10’a bölümünden kalan sayı (MOD10) 10. basamaktaki sayıyı vermelidir.
5 – İlk 10 hanenin toplamından elde edilen sonucun 10’a bölümünden kalan sayı (MOD10) 11. basamaktaki sayıyı vermelidir.
Gördüğünüz gibi 5 şarttan biri tutmuyor ise ilgili TC Kimlik No doğru değildir yani Türkiye’de hiçbir vatandaşa verilmemiş bir sayıdır.
TC Kimlik No Doğrulama Algoritması C#
Ben C# ile yazılım geliştiren biri olduğumdan dolayı bu yazımda C# ile bu algoritmanın nasıl yapıldığını vermek istiyorum. Ben hali hazırda zaten bu algoritmayı projelerimde kullanıyorum.
C#26 lines
Kodlarda gördüğünüz gibi ilk üç adımın kontrolü çok basit. Toplamda uyulması gereken 5 şart olduğundan dolayı Algoritma_Adim_Kontrol değişkenini, her adımda 1 arttırarak, şartı kontrol eden kodların çalışmasına göre test edilen TC Kimlik No‘sunun doğru olup olmadığına karar veriyoruz.
For döngüsünde index sayısına bir ekleyerek, modunu alıyoruz ve hangi basamakta olduğumuzu buluyoruz (1,3,5,7,9 yada 2,4,6,8). Eğer çift sayısı basamaklardaysak değeri, CiftBasamaklarToplami değişkenine, değilse TekBasamaklarToplami değişkenine ekliyoruz.
Bu işlemden sonra da zaten mod alma işlemleri ile 10. ve 11. karakterleri kontrol ettiriyoruz.
Algoritma_Adim_Kontrol değişkeni 5 değerini aldıysa test edilen TC Kimlik Numarası Doğrulama Algoritması geçilmiş demektir.
**
Ben burada işlemin tek seferde tamamlanması yoluna giderek işlemi yaptım. Ancak bu yöntemden farklı olarak Her adımı bağımsız olarak kontrol ettirebilir ve ilk hatada kontrolü durdurabiliriz.
TC Kimlik No Algoritması yazımda bu kadar arkadaşlar. Diğer derslerimizde görüşmek üzere.
Diğer yazılarıma gitmek isterseniz buraya tıklayabilirsiniz.
Sağlıcakla ve takipte kalın.
Bana destek olmak isterseniz bir kahve ısmarlayabilirsiniz veya diğer hesaplarımdan takip edebilirsiniz.
Post Views: 655
YORUM YAP
Bu Yazıya Tepkiniz Ne Oldu?
be_enBEĞEN
25
alk_ALKIŞ
7
e_lenceliEĞLENCELİ
3
d_nceliDÜŞÜNCELİ
1
_hhÖĞHH
2
kalp_3KALP <3
1
kz_g_nKZIGIN
1
TC KİMLİK NO ALGORİTMASITC KİMLİK NO DOĞRULAMA ALGORİTMASITC KİMLİK NO DOĞRULAMA ALGORİTMASI C#TC KİMLİK NO DOĞRULAMA ALGORİTMASI NEDİRTC KİMLİK NO SORGULAMA ALGORİTMASITC NO DOĞRULAMA
BENZER YAZILAR
Minimal Api Nedir 1
29 Mar, 2022 69
.Net Core Minimal API Nedir?
veritas_avatarCansu Karaman
dot net core 3 jwt s
13 Ara, 2019 438
ASP.NET Core 3.0 ile JWT Uygulaması
r_avatarRaziye Ataseven kz_g_n
Net-Blazor 1
26 Ara, 2019 366
.Net Core Blazor Web Apps
veritas_avatarCansu Karaman kz_g_n
YAZAR HAKKINDA
mustafabukulmez_avatar
Mustafa Bükülmez
Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım. Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir. Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır. Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.
YAZILAR
29
YORUMLAR
41
PUAN
8
YORUM YAP
Yorumunuz
Yorumunuz
Adınız
Adınız *
E-Posta Adresiniz
E-Posta Adresiniz *
Websiteniz
Websiteniz
YORUMU GÖNDER GİRİŞ YAPYORUMLAR (3)
Alper Karaman
Alper Karaman 3 sene önce
Bunu bilmeden önce herkesin TC numarasının sitelerce bilindiğini sanıyordum. Cahillik başa bela. Öğrendiğimde ufkum iki katına çıkmıştı. Eline sağlık mustafa
CEVAPLA
Emrah 2 sene önce
Peki yabancı birisi geldi yabanci kimlik no göremeyeceğiz onu da bu algoritmaya dahil etmek lazım
CEVAPLA
Mustafa Bükülmez 2 sene önce
Onun için yabancıların bu vatandaşlık numaralarını hangi algoritma ile ürettiklerini bilmemiz ve kodlamamız gerekir.
CEVAPLA
Ana SayfaControl-M
Authorizations | Control-M #9
wl_avatarAlper Karaman
17 Mart 2020
Okuma süresi: 3dk, 45sn
303
+ -
Bu konumuzda security tabında bulunan ve yönetimin büyük ölçüde ayarlandığı Authorizations kısmını ele alacağız. Autohrization başlığında yer alt menüleri ve yapılabilecek her şeyi bir bir inceleyeceğiz. İstek olursa video ile anlatım da olur.
Users & Groups
Genelde yekilendirmeler yapılırken groupları yetkilendirmek administrative açıdan daha kolay olmakta ve yönetimi basitleştirmektedir. Gruplara atanan yetkiler eğer Default olarak işaretli ise gruba bağlı userlar da bu yetkileri INHERIT edecektir.
LDAP userları LDAP Group Mapping yapısında INHERITANCE alırlar. Yukarıdaki DEFAULT kuralı burada da geçerlidir. LDAP tarafından Local Admin Account’unu bilmemizde yarar vardır. Eğer esas kullandığımız hesapta bir problem olursa Local Admin Account’u ile giriş yapacağız.
Authorizations Bölümleri ve Amaçları
General: Username, Password, Password Policy ayarları yapılır.
Member Of: User’ların üye olacağı gruplar belirenir. User, hakları group/grouplardan INHERIT (kalıtım) edecektir.
Active: Monitoring tarafında user’ın/group’un yetkileri ayarlanır. (ViewPoint yetkilendirmesi)
Privileges: User’ın/Group’un EM’nin hangi özelliklerine erişebileceği ayarlanır.
Eğer group söz konusu ise DEFAULT seçili olanlar group’a bağlı user’ların INHERIT edeceği haklardır.
Global Conditions : Global Condition’ların PREFIX’lerinin değiştirildiği erkrandır. Genelde sadece admine bu yetki verilir. Buradaki bir değişiklik tüm Control-M sistemini etkileyecektir.
Calendars : BROWSE ve UPDATE yetkisi verilebilir. Yetkilendirmenin group bazında yapılması önerilir.
Folders : BROWSE ve UPDATE yetkisi verilebilir. Yetkilendirmenin group bazında yapılması önerilir.
Run As Users: Kimlerin JOB oluşturup çalıştırabileceğini ayarladığımız kısımdır. Hem Planinnig hemde Monitoring tarafını etkiler.
Workload Policies : Normal user’ların yetkilendirmelerinin y apıldığı kısım.
Services: BIM ve Self-Service yetkilendirmelerinin yapıldığı yerdir. Servis için yaptığımız yetkilendirmeler servis içerisindeki jobları KAPSAMAZ! Onlar için ayrıca yetkilendirme gerekecektir. Çünkü JOB’lar ( aktif olanlar ) zaten monitoring ekranındadır. BIM ya da Self-Service job’ları ayrıca Web Browser’da görüntüleriz. Yaptığımız yetkilendirmeler orada yansıyacaktır. Active Authorizationla bu yetkilendirme ayrı şeylerdir.
Prerequisite Conditions : Monitoring tarafındaki conditionlar ile ilgili yetkilendirmelerdir.
Control Resources : Monitoring tarafında kaynakların yetkilendirmesi yapılır.
Quantitative Resources : Monitoring tarafında kaynakların yetkilendirmesi yapılır.
LDAP Groups : Bir LDAP grubunu bir EM Authorization grubuna map ettiğimiz yerdir. Eklerken Domain Name yada Short name yazabiliriz. Domain name yazılması önerilir. LDAP grubuna göre bir user ile Login olunduğunda ilgili LDAP grubunun ne hakkı varsa onlara sahip olacak.
Authorizations
Twists & Tips
Folder Security söz konusu olduğunda 4 adet erişim level’ı vardır. NONE, BROWSE, UPDATE, FULL. Bu parametre bir folder’ın schedule edilebilmesi ya da folder içerisindeki Job’un order edilebilmesi için user’ın ya da group’un sahip olması gereken yetkiyi belirtir.
Default olarak bu parametre UPDATE_ACCESS diğerine sahiptir. Yani user’ların bir folder’ı schedule edilebilmesi için UPDATE yetkisi olması gerekmektedir. Ancak user yada group sadece JOB’u order edecekse UPDATE yetkisine gerek yoktur. Bu yüzden bu parametreyi BROWSE_ACCESS olarak değiştirersek user’ların sadece BROWSE yetkisi olması gerekir. Aksi takdirde Folde’ı order edemeyeceklerdir.
EnableRemoteBrowsing: Default olarak Yes durumdadır. Bu durumda user’ları Agent’ın Local File System’ini götüleyebilecek, dosya listelerini çekebileceklerdir. Bunu disable edersek bunları yapamayacaklardır.
PGUI & KICK: EM üzerimde bir değişiklik yaptığımızda değişiklerin yansıması için ilgili user’ın logout & login olmaları gerekir. Eğer ilgili user’larla direkt iletişimimiz yoksa onu sistemden logout yaptırabilir. Onu yeniden login olma zorunda bırakabiliriz. Bunun için EM’de ControlShell açarız. PGUI ile ilgili user’ı bulur, KICK ile onu sistemden dışarı atarız.
EM_BYPASS_CTMSEC: Control-M Server parametresidir. Control-M Server tarafından güvenlik kriterlerini görmezden gelir, sadece EM Authorizations göre haraket eder.
Authorization Flow
Workload Automation GUI -> GUI Server -> Gateway -> Control-M Server -> Control-M Agent
Authorization’lar Agent, Server, GUI Server ve EM seviyelerinde sağlanır.
Agent Tarafında
Unix sistemlerde Job’lar RunAsUser’da kim varsa o user’ın yetkileriyle çalışır. Windows’ta ise eğer LogonAsUser seçeneği seçili ise o User’ın yetkileri ile çalışır. Eğer seçili değilse agent servisinin default User’ı ile yeni local system account’un yetkileri ile çalışır.