Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Napisanie programu generującego losowe liczby

Itcheb 22 Mar 2010 11:06 1680 5
  • #1 22 Mar 2010 11:06
    Itcheb
    Poziom 2  

    Witam.
    Chciałbym się dowiedzieć, jak można napisać prosty program, który generował by losowo liczby w formacie xxxx-xxxx-THV3-SDP.
    Zrobiłem gre i chciałbym ją w jakiś sposób zabezpieczyć. Zrobiłem system rejestracji ale wciąż brakuje mi losowo generowanych kodów.
    Dobrze by było gdyby program wysłał na maila wygenerowany kod, żebym wiedział jaki został użyty.
    Proszę o pomoc, jestem całkiem zielony w tych sprawach.

    1 5
  • #2 22 Mar 2010 11:29
    chudybyk
    Poziom 27  

    Witam!
    Byłeś w stanie napisać grę, ale nie potrafisz wygenerować liczb losowych? Co w tym trudnego? Oprócz użycia funkcji random(). ;-)
    Pozdrawiam!

    -1
  • #3 22 Mar 2010 12:15
    arnoldziq
    Moderator Programowanie

    W twoim przypadku, losowe liczby to nie jest rozwiązanie. Każdy może sobie "wylosować" takie liczby i twoje zabezpieczenie traci sens.
    Musisz się zastanowić nad jakimś sposobem kodowania, ze zmienną formą kodu, tak aby kolejne kody zawierały odmienne liczby/litery, ale odkodowane zawierały dokładnie tę samą informację.

    Można to zrobić w dość prosty sposób :
    - Uznajmy, że używasz liter.
    - Masz 26 liter (nie liczymy raczej polskich znaków).
    - Losujesz liczbę pomiędzy 1 i 26 - to będzie twój klucz.
    - Do ciągu znaków wstawiasz literę odpowiadającą wylosowanej liczbie.
    - Następnie swój kod, np. słowo 'LICENCJA', kodujesz dodając lub odejmując od każdej litery z kodowanym słowie tę wylosowaną liczbę i wstawiasz odpowiadającą jej literę zamiast oryginalnej.
    - Jeżeli suma liczb przekroczy 26, podajesz literę na pozycji modulo 26.
    - W przypadku odejmowania, jeżeli przekroczysz 1, odliczasz dalej od 26 w dół.

    Dekodujesz to dokładnie odwrotnie, zamiast dodawać, odejmujesz liczbę. Przypominam, że klucz masz już zapisany na którejś pozycji w swoim ciągu znaków.

    1
  • #4 22 Mar 2010 13:05
    PanBo
    Poziom 16  

    Sens takiego zabezpieczenia to tylko Twoja nauka, bo złamanie go nie zajmie więcej niż minutę. Gdybyś chciał ten czas nieco wydłużyć użyj jakiegoś gotowego protectora. Nie wiem czy są jakieś sensowne darmowe, ale tu jest jeden polski: pelock (płatny).

    1
  • #5 22 Mar 2010 13:05
    Itcheb
    Poziom 2  

    co jest takiego trudnego?
    powinienem tam napisać że stworzyliśmy

    gre robilem z kolegami, niestety juz sie nie kolegujemy

    moze macie jakies gotowe kody ktore można przekształcić i dostosować?

    1
  • #6 22 Mar 2010 16:53
    chemicalkash
    Poziom 19  

    Można przy rejestracji wymagać adresu email. Następnie użyć MD5 do wygenerowania hasza. Następnie hasz "wymieszać" z innym twoim haszem np:

    MD5('user@email.com')=EEEEEEEEEEEEEEEEEEEEEEEE
    MD5('twojehaslo1234')=PPPPPPPPPPPPPPPPPPPPPPPP

    klucz dla użytkownika: EPEPEPEPEPEPEPEPE idt...

    Program byłby w stanie odkodować klucz rejestracyjny na podstawie adresu email wpisanego podczas rejestracji.

    1