Bu rehberde, Python programlama dilini kullanarak geçerli TC Kimlik Numaraları nasıl oluşturulacağını adım adız açıklayacağız. TC Kimlik No algoritması, belirli matematiksel kurallara dayanır ve bu kurallara uygun numaralar üretmek için bir Python fonksiyonu geliştireceğiz.
TC Kimlik No Algoritması Nedir?
TC Kimlik Numarası 11 haneden oluşur ve şu kurallara uyar:
- İlk hane sıfır olamaz
- İlk 10 hanenin toplamının birler basamağı, 11. haneyi verir
- İlk 9 hanenin 7 katı ile 10. hanenin farkı, 10. haneyi verir
- Herhangi bir rakamdan oluşan aynı sayılar (11111111111 gibi) geçersizdir
Python ile TC Kimlik No Üretme Kodu
Aşağıda, yukarıdaki kurallara uygun rastgele TC Kimlik Numaraları üreten bir Python fonksiyonu bulunmaktadır:
|
|
Kullanım Örnekleri
Temel Kullanım
# Tek bir TC Kimlik No üretme
tc_no = generate_tc_number()
print(tc_no) # Örnek çıktı: "12345678901"
Birden Fazla TC Kimlik No Üretme
# 5 adet TC Kimlik No üretme
for _ in range(5):
print(generate_tc_number())
Django’da Kullanım
# Django modeli için örnek kullanım
from django.db import models
class UserProfile(models.Model):
name = models.CharField(max_length=100)
tc_identity = models.CharField(max_length=11, unique=True)
@classmethod
def create_with_tc_number(cls, name):
return cls.objects.create(
name=name,
tc_identity=generate_tc_number()
)
Flask Uygulamasında Kullanım
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/generate-tc', methods=['GET'])
def generate_tc():
return jsonify({"tc_kimlik_no": generate_tc_number()})
if __name__ == '__main__':
app.run(debug=True)
Performans ve Güvenlik Notları
Rastgelelik: Bu fonksiyon, Python’un
random
modülünü kullanır. Kriptografik olarak güvenli rastgelelik içinsecrets
modülünü kullanabilirsiniz:import secrets def secure_generate_tc_number(): random_pool1 = int(secrets.token_hex(3), 16) % 90000 + 10000 random_pool2 = int(secrets.token_hex(2), 16) % 9000 + 1000 # ... geri kalan kod aynı
Kullanım Alanları:
- Test verisi oluşturma
- Demo uygulamaları
- Eğitim amaçlı projeler
- Form doğrulama testleri
Yasal Uyarı: Bu fonksiyon sadece test ve eğitim amaçlıdır. Gerçek TC Kimlik Numaralarıyla çalışırken kişisel verilerin korunması kanunlarına (KVKK) dikkat ediniz.
Sık Sorulan Sorular
S: Bu fonksiyon gerçekten geçerli TC Kimlik Numaraları mı üretiyor? C: Evet, bu fonksiyon resmi TC Kimlik No algoritmasına uygun numaralar üretir. Ancak üretilen numaralar sadece test amaçlı kullanılmalıdır.
S: Django veya Flask gibi framework’lerde kullanabilir miyim? C: Evet, bu fonksiyon saf Python ile yazılmıştır ve herhangi bir Python projesinde (Django, Flask, FastAPI vb.) kullanılabilir.
S: Üretilen numaralar benzersiz mi? C: Fonksiyon rastgele sayılar kullandığı için aynı numarayı tekrar üretme ihtimali vardır. Eğer benzersizlik gerekiyorsa, daha önce üretilen numaraları bir veritabanında takip etmeniz gerekir.
Sonuç
Bu makalede, Python kullanarak nasıl geçerli TC Kimlik Numaraları oluşturabileceğinizi öğrendiniz. Bu kodu test verisi oluşturma veya TC Kimlik No doğrulama mantığını anlamak için kullanabilirsiniz.
Daha fazla bilgi için TC Kimlik No Algoritması sayfamızı ziyaret edebilirsiniz.
Not: Bu makalede verilen bilgiler ve kod örnekleri yalnızca eğitim ve test amaçlıdır. Resmi işlemler için her zaman Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü’nün resmi kaynaklarını kullanınız.