Wpadłem na pomysł użycia szyfrowania, aby uniemożliwić użytkownikom rozpoznawanie treści w moim programie poza samym programem. Podobnie jak użytkownicy mogą znaleźć tekstury nigdy nie używane w grze, które mają być częścią pewnego rodzaju pisanki podczas przeglądania danych gry. Może to np. Zrujnować go wszystkim, jeśli zostanie opublikowany online.
Wyobraź sobie sekretny pokój, w którym gracz musi nacisnąć odpowiednie cyfry na drzwiach zabezpieczających w grze, które, jeśli są poprawne, powinny wygenerować prawidłowy klucz deszyfrujący, a następnie odszyfrować tę część poziomu i otworzyć drzwi. W ten sposób jajko wielkanocne byłoby niedostępne nawet podczas przeglądania danych gry, ponieważ klucz nie jest w rzeczywistości przechowywany, jest generowany na podstawie danych wprowadzonych przez użytkownika.
Oto kolejny przykład tego, co sobie wyobrażałem. Mam grę logiczną, powiedzmy 20 poziomów, każdy zaszyfrowany przy użyciu innego klucza. Zamiast przechowywać klucz deszyfrujący w programie bezpośrednio umożliwiający komuś dekompilację programu i znalezienie go, zamiast tego generuję klucz szyfrowania / deszyfrowania na podstawie rozwiązania z poprzedniej układanki. W ten sposób gracz musiałby rozwiązać zagadkę, zanim uzyska jakiekolwiek informacje na temat następnego poziomu, nawet przeglądając dane gry.
Gracz, o ile jest kompetentny, może „brutalnie” użyć siły, biorąc pod uwagę, że liczba rozwiązań łamigłówek jest prawdopodobnie mniejsza niż liczba kluczy deszyfrujących. To naprawdę złożoność zagadki i nie jest tutaj bardzo ważna. Choć nie pisać odpowiedzi dotyczące go tutaj
Czy są dzisiaj programy / gry, które zrobiły coś takiego? Zapisujesz zaszyfrowaną zawartość w swoich grach? A jeśli nie to dlaczego? Czy istnieje wiele zasad i regulacji na poziomie sklepu lub kraju? Czy ktoś widzi jakieś oczywiste pułapki, których mi brakuje? Ignorując takie elementy, jak wrażenia użytkownika, wydaje mi się, że ten pomysł wydaje mi się słuszny i zastanawiam się, dlaczego tego nie widziałem.
Edycja : Może nie być do końca jasne, co mówię, więc oto bardziej konkretny przykład.
Załóżmy, że mam funkcję, która pobiera ciąg 20 znaków i generuje klucz symetryczny, którego mogę użyć do szyfrowania / deszyfrowania niektórych treści w grze. Jedynym sposobem, w jaki użytkownik może dostać się do tej treści, jest poznanie tych 20 znaków i wygenerowanie tego samego klucza. Ten klucz nigdy nie jest bezpośrednio zapisywany i jest generowany w locie na podstawie danych wprowadzonych przez użytkownika. Te postacie byłyby ukryte w grze w książkach, dialogu z NPC, może nawet poza grą, nawet z tyłu pudełka.
Zatem przy 2 * 10 ^ 28 możliwych kombinacjach do wypróbowania prawdopodobnie bardziej prawdopodobne jest, że ludzie znajdą treść w zamierzony sposób, a nie patrząc na dane gry.
Edycja 2 : Przed wysłaniem do konsumenta przedmiotowa treść zostanie zaszyfrowana dowolnym, tajnym kluczem . Ten klucz oczywiście nie zostanie dostarczony z grą. Musiałby w jakiś sposób rozwiązać klucz razem, biorąc pod uwagę serię wskazówek wykonanych na podstawie klucza, które są ukryte w grze lub gdzie indziej. Ten system byłby jednak przezroczysty dla użytkownika, ponieważ nie wiedziałbyś, że treść została zaszyfrowana, chyba że przejrzysz dane gry.
Jak już wspomniano, ma to jedną oczywistą wadę, ponieważ jego zastosowanie jest ograniczone. Gdy tylko jedna osoba się zorientuje, może podzielić się nim z innymi, jeśli nie kluczem / rozwiązaniem, to samą treścią. Jeśli jednak masz zamiar zachować coś w tajemnicy, aby jedna osoba nie była w stanie go rozwiązać, a ludzie muszą współpracować, aby go rozwiązać, lub obawiasz się, że twoje easter egg jest tak dobrze ukryte (z założenia), że to jest bardziej prawdopodobne, że ktoś znajdzie go w kodzie raczej podczas gry. Więc myślę, że to może działać świetnie.
Osobiście poleciłbym używać go tylko raz na grę i tylko do rzeczy, które nie wpływają na podstawową rozgrywkę, np. Pisanki, sekretne zakończenie. Każda łamigłówka musiałaby być tak skomplikowana lub dobrze ukryta, aby spowolnić ludzi na tyle, aby szyfrowanie treści było tego warte, a jeśli ta łamigłówka stanęła na przeszkodzie postępom ludzi, prawdopodobnie nikt się nie bawi.