そのようなことが本当に必要な場合は、ハッシュする代わりに、実行時に数値入力値から文字列を構築することを検討できます。
利点は、@ Philippが指摘しているように、とにかくインターネット上に投稿されることが予想される場合、実行可能ファイル内のコードを隠そうとすることは無意味です。ハッシュされているかどうかにかかわらず、インターネット上で見つかってゲームに入力された同じ単語は同じハッシュを与え、どちらの方法でも機能します。
ただし、他の誰かのコードが機能しない場合を除きます。簡単にできること-100%の改ざん防止ではありませんが、平均的なユーザーにとっては回避するのはかなり難しいです。「オンラインエルフ名ジェネレータ」と同じくらい簡単なこと(任意に簡単にでき、実際には多くのマルコフテキスト生成エンジンを必要とせず、ランダムリストから4-5音節を引き出すだけで十分です)。
多少ユーザー固有またはマシン固有の番号を生成するだけで、完全に一意である必要も、改ざん防止する必要もありません。コンピュータのネットワーク名、MACアドレス、システムディスクドライブのGUIDなど、ほとんどの人にとってはおそらく異なるものであり、定期的に変更される可能性の低いもの(GPUシリアル番号は非常に悪いかもしれません)ユーザーがGPUをアップグレードする可能性が高いためです。それにロック解除コードが参照する数値コードを追加し、それをワードジェネレーターにフィードします。ただし、プレーヤーが2台のコンピューターを使用する場合や、ネットワークカードを変更する場合(これは珍しいことではありませんが、不可能ではありません)、サポートクエリに答える準備をしてください。ランダムIDを1回だけ生成し、ゲームの設定で保存するのは良い計画かもしれません。そうすれば、少なくとも何かが変わっても同じマシン上の既存のインストールが壊れることはありません。
または、一意のゲームのシリアル番号を使用するだけで、ユーザーがハードウェアを変更した場合に機能します(ただし、皮肉なことに、共有ロック解除コードは海賊版のシリアルでは機能しますが、正当な顧客では機能しないため、海賊行為を促進する可能性があります!)
ユーザーの不正行為を防ぐことは必ずしも良いことではないことに注意してください。オフライン(非競合ゲーム)では、ユーザーがプレイからではなく、どこかからコードをごまかして取得しても、通常は問題ありません。彼はごまかしているだけです。誰も気にしない。
一方で、彼らが本当に不正をしたい場合に邪魔になりすぎることは、有料の顧客を完全に怒らせる絶好の機会です。
だから...あなたがそのように何かをする前に、あなたが本当にそれを望むかどうか、そしてあなたが望むものを非常に徹底的に考えてください。おそらく、人間が読める文字列(またはxorを使用して「読めない」ようにする)で十分であり、実際に望ましいものです。