Якщо така річ дійсно бажана, то замість хешування ви можете розглянути можливість створення рядків із числового вхідного значення під час виконання.
Перевага полягає в тому, що, як вказував @Philipp, намагатися приховати коди у виконуваному файлі дещо безглуздо, якщо ви можете очікувати їх розміщення в Інтернеті. Перемішане чи ні, те саме слово, знайдене в Інтернеті та введене в гру, дасть той же хеш і буде працювати в будь-якому випадку.
За винятком ... за винятком випадків, якщо чийсь код не працює для вас. Що ви можете банально зробити - не на 100% захищених від несанкціонованих дій, але досить важко обійтися середньому користувачеві. Все настільки просто, як "Онлайн-генератор імен ельфійців" зробить (може бути довільно простим, насправді не потрібно багато маркованого двигуна тексту маркова, достатньо добре витягнути 4-5 складів із випадкового списку).
Просто генеруйте дещо конкретне або певне для користувача число, воно навіть не повинно бути абсолютно унікальним або дуже стійким до фальсифікації. Щось, що, мабуть, відрізняється для більшості людей і навряд чи регулярно змінюватиметься, наприклад, мережеве ім’я комп'ютера, MAC-адреса або GUID системного дискового диска, як би там не було (серійний номер GPU може бути дуже поганимідея, оскільки користувачі, ймовірно, оновлять графічні процесори). Додайте до цього числовий код, на який посилається код розблокування, і введіть його у свій генератор слів. Але будьте готові відповідати на запити підтримки, коли гравці використовують два комп’ютери або змінюють свою мережеву карту (що незвично, але не неможливо). Це може бути гарним планом генерувати випадковий ідентифікатор лише один раз і зберігати його з налаштуваннями гри. Таким чином, принаймні він не порушує існуючі установки на одній машині, якщо щось зміниться.
Або ви можете просто скористатись серійним номером гри, який є унікальним, і він працюватиме, якщо користувач змінить апаратне забезпечення (правда, це може сприяти піратству, оскільки спільні коди розблокування працюють для піратських серіалів, але не для законних клієнтів!).
Зауважте, що запобігання обману користувачів не обов'язково є доброю справою. В офлайновій (тобто неконкурентній грі) зазвичай це не проблема, якщо користувач обманює та отримує коди звідкись, а не від гри. Він лише обманює себе. Кому все одно.
З іншого боку, занадто сильно заважати їм, якщо вони дійсно хочуть обдурити, - це чудова нагода повністю розчулити платників.
Отже ... перш ніж робити щось таким чином, подумайте дуже ретельно, чи дійсно ви цього хочете, і чого ви хочете. Цілком можливо, наявність людських читабельних рядків (або тривіально зроблених "нечитабельних" за допомогою xor) є достатньо хорошою і справді бажаною.