myenes adlı üyeden alıntı

Benin aklıma şu geldi 10 karakter uzunluğunda Türkçe harf ve sayılar kullanılır olsun. Bu karakterleri 5 gruba ayıralım yani ilk 2 karakter bir grup sonraki iki karakter bir grup gibi. Daha sonra bu 5 gruba bazı özel veriler girelim yani, 1.grup da bulunan karakterler "A" harfi ile "Ğ" harfine kadar rastgele sayılar seçilsin. 2.gruptakiler de farklı aralıklar belirlensin vs. bu şekilde oluyordur büyük ihtimal :) Ben kısa bir özet geçtim bunu birazda irdelersek dahada zorlaştırabiliriz :)


Hürkal adlı üyeden alıntı

Bunu istediğiniz şekilde belirleyebilirsiniz. 10 karakterli bir kod için aklıma gelen birkaç kural şu şekilde olabilir:


  • 1. ve 10. karakterin toplamının mod10'u 5. karakteri vermeli

  • Tüm karakterlerin toplamı tek sayı olmalı

  • 3. karakterin 3 ile çarpımının mod10'u 9. karakteri vermeli, 9. karakterin 3 katının mod9'u ilk karakteri vermeli



Kuralın mantığını siz belirlersiniz. Bu arada yukarıdakilerin hepsi rakam kümesi kullanılarak {0,1,2...9} yapılıyormuş gibi algılamış olabilirsiniz. Karakterlerin bilgisayar karşılığında ASCII kod karşılıkları, kısaca işimize yarayacak olan sayısal değeri kullanacağız.

Fiyat konusuna gelince... Bir programcının sadece kodunu yazması ve veritabanını hazırlaması, bu kodları üretmesi, bu kodların tek kullanımlık olmasını sağlaması aslında basit bir iş. Bunun için istenen uçuk bir rakam olmayacaktır.


Kakarotto adlı üyeden alıntı

Bahsettiğin siteler büyük sitelerdir, kendilerine ait sunucuları olduğu için veritabanına kaydederler. Kaydedilen kod, ile girilen kod eşleşirse, ilk girişde bu çereze ya da oturuma kaydedilir fakat veritabanından silinir. Oyunu bitirinceye kadar / çekiliş bitinceye kadar o şekilde kalır. Oyun bitince, oturum/çerez silinir ve o kodu tekrar girseniz de hiçbir işe yaramaz.

Bazılarında ise farklı algoritma vardır.
Örnek veriyorum.

QWERTYUIOPASDFGHJKLZXCVBNM gibi klavyedeki harfleri sırayla yazdık.

Şimdi burada şu tarz bir algoritma yazılabilir...

Eğer çubuktan çıkan şifrenin ilk harfi Q ise, qdan itibaren ikişer karakterli harfleri al. (Q-E-T-U...)

Eğer çubuktan çıkan şifrenin ilk harfi W ise, wden sonraki ikişer karakterli harfleri al.(W-R-Y-I..)

Daha sonra bunları girilen şifre ile eşleştir. :)

Böylelikle veritabanına gerek kalmadan sorgulama yapılabilir. Tabi bu ufak bir iki şifre için geçerli olabilecek bir algoritma. Milyonları kapsayacak bir algoritma için çook daha gelişmiş şeyler yapılır. (matematikteki mod kavramını vs. iyi biliyorsanız zorluk çekmezsiniz.. :))

Basitçe bu mantık da kullanılabiliyor. :)


Edit:
Aklıma gelmişken TC Kimlik No algoritması şu şekildedir;


Hayal gücünü kullan. :)


Anladım, hepinize teşekkür ederim, çok yardımcı oldunuz :)