Jak w temacie. Jak stworzyc prosty serial. Chcialem zabezpieczyc program, ale nie moge nic wymyslec. Chodzi mi o taki cosik, zeby program sprawdzal poprawnosc seriala i zeby w serialu byla nazwa uzytkownika. Ma ktos jakis pomysl? :)
Chłopie wymyśl sobie jakiś wzór matematyczny np. aby pobierał kody ASCII z wpisanej nazwy użytkownika i je np. mnożył przez ilość znaków, później dzielił przez coś tam i dowaj jakieś literki i gotowe...ile operacji zrobisz na działaniach tak będzie trudniej go rozgryźć...
Dzieki. Wlasnie po wyslaniu posta naszedl mnie pomysl. Dzieki za uwagii. :)
Hm... moglbys zaszyfrowac nazwe+twoj jakis tam kod i powstaje serial
--Delphi 6
Pozdrowienia{hello} ,
Moderator Imperior
Ja bym proponował za pomocą kodowania Enigmy - mam artykulik o tym :)
Imperior napisał:
Hm... moglbys zaszyfrowac nazwe+twoj jakis tam kod i powstaje serial
>
Alew jemu chodziło o keygen... :) A ty dałeś pomysł na jakiś tam kod i to musiałby sobie takich kodów sam nawymyślać, albo był by jeden... POZDRAWIAM! {brawo}
OnoMaTO ma rację. Trzeba stworzyć jakiś wzór, o którego ideę będą opierały się kody, a które to program będzie potem mógł rozszyfrować. Najłątwiej jest zrobić jakieś sprawdzanie:
if serial[1]='U' then if (ord(serial[3]) + ord(serial[17]))=300 then //cośtam.
Jest to chyba najprostszy i najlepszy sposób - trzeba posiedzieć, wymyśleć wzór, i na jego podstawie zbudować keygen z random itd.
procedure TForm1.GenerujClick(Sender: TObject);
var
a,b,c,d,e : Integer;
Kod : String;
begin
if N.Text = '' then
MessageBox(0,'M u s i s z c o ś w p i s a ć !','-=<[ ..UPS.. ]>=-',MB_OK+MB_IconInformation)
else
begin
-
przypisanie do zmiennych a,b,c i d i zmiana ich na znaki w kodzie ASCII
a := Ord(N.Text[2]);
b := Ord(N.Text[1]);
c := Ord(N.Text[Length(N.Text)]);
d := Ord(N.Text[Length(N.Text) - 1]);
e := Ord('T'); -
mnożenie wyników i przypisanie z powrotem do zmiennych
a := a3;
b := b2;
c := c4;
d := d8;
e := e*2; -
Wstawienie gotowego wyniku do zmiennej Kod
Kod := IntToStr(a)+IntToStr(e)+IntToStr(b90)+IntToStr(c)+IntToStr(d2); -
Wstawienie zmiennej Kod do edita i wyświetlenie
R.Text := Kod;
end;
end;
I to by było na tyle :-)
Pozdrawiam
TheChoseN
http://www.dplanet.boo.pl/
Hehehe Ciekawa metoda..... Ale po kiego licha to *90 w IntToStr????? :-) To musi robić zamieszanie, ale czy nie lepiej robić coś takiego:
Jeżeli w a przechowuję kod ASCI znaku, to a:= (a*1000 mod 257)*100 mod 255 ?? Liczby można wybrać dowolnie, a kodowanie modulo jest naprawdę trudne do złamania.. :-)
--Delphi 4
Skysh The God, Your Slave
Skysh napisał:
Hehehe Ciekawa metoda..... Ale po kiego licha to 90 w IntToStr????? :-) To musi robić zamieszanie, ale czy nie lepiej robić coś takiego:
>
>Jeżeli w a przechowuję kod ASCI znaku, to a:= (a1000 mod 257)*100 mod 255 ?? Liczby można wybrać dowolnie, a kodowanie modulo jest naprawdę trudne do złamania.. :-)
Po pierwsze kodowanie modulo nie jest takie trudne do złamania...
A po drugie przykład który podałeś nie działa tzn np: dla a=232, a=243 i a=254 wyjdzie a=240, więc nie możliwe jest odkodowanie.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.