Buduję system z kodem źródłowym, który daję w sieci na dostarczanie adoptowalnych wirtualnych zwierząt. System będzie własnością głównie dzieci. Ponieważ chcę, aby był on użyteczny dla absolutnie początkujących programistów, w moim systemie jest kilka ograniczeń złożoności: nie może korzystać z bibliotek, które nie są zwykle dostarczane z PHP, i nie może dotykać bazy danych lub pisać do innych stałych pamięci .Proste szyfrowanie w PHP
Po przyjęciu każdego zwierzaka gość otrzyma losowo jedną z serii nieco odmiennych odmian tego zwierzaka. Odmiany wyglądają początkowo tak samo, ale z czasem stają się coraz bardziej zróżnicowane. Użytkownik otrzyma krótki kod w języku HTML, który łączy się z obrazem zwierzaka. Ponieważ nie ma stałej pamięci dostępnej po stronie serwera, łącze do obrazu użytkownika musi zawierać wszystkie informacje, aby ustalić, która wersja zwierzęcia się skończyła.
W tej chwili adres URL zawiera identyfikator zwierzaka i identyfikator odmiany, którą otrzymał użytkownik. Problem polega na tym, że porównując kody ze sobą, użytkownicy mogą dowiedzieć się, który z nich znalazł się w tej samej odmianie. Ponieważ niektóre odmiany są rzadsze niż inne, użytkownicy mogą łatwo zauważyć rzadkie odmiany, zanim różnica będzie nawet widoczna.
To, co chciałbym, to system szyfrowania dla szczegółów w adresie URL. Coś, co przesłania identyfikator odmiany, aby każdy użytkownik otrzymał inny adres URL z dużym prawdopodobieństwem. Myślałem o używaniu identyfikatora wariancji (3 lub 4 bity) jako niskich bitów lub wysokich bitów dużej liczby losowej, ale użytkownicy zauważą wzór w tym. Idealnie byłoby by system szyfrowania był sparametryzowany tak, aby każda instalacja mojego systemu używała nieco innego szyfrowania.
Biblioteka mcrypt PHP prawdopodobnie zawierałaby w sobie coś użytecznego, ale nie wydaje się być bardzo popularna wśród hosterów.
Czy istnieje prosty, sparametryzowany, zaciemnianie/szyfrowanie, którego mogę użyć tutaj?
Brzmi jak dobra strategia. Mogłem również XOR cały ciąg za pomocą klucza specyficznego dla instalacji. Twoje intuicje dotyczące poziomu zaawansowania "atakujących" są bardzo poprawne .. :) – thenickdude