6

Java でゲーム サーバーを作成しています。コンピューターの一意の識別子 (マルチアカウント保護) を取得する方法が必要です。ターゲット プラットフォームは Windows >= XP です。純粋な Java と JNI でそれを行う多くの方法をテストしました。

  • MAC アドレス - 変更が非常に簡単で、衝突の可能性が高い
  • (JNI) マザーボード SN - 常にではなく、衝突の可能性が高い
  • (JNI) Diskdrive SN - WMI を使用してディスク文字でディスク ドライブを検出できない、衝突の可能性がほとんどない、Windows XP で動作しない (SerialNumber フィールドがない)
  • 隠しフォルダ内のファイル - Windows の再インストール後に保存されません。場所がわかっていれば、変更または削除できます。
  • (JNI) Windows GUID - 衝突の可能性が高く、Windows の再インストール後に保存されません。

別の方法はありますか?

4

2 に答える 2

2

ソフトウェア ライセンスに使用した CPUID を使用することをお勧めします。

乾杯 :)

于 2013-08-04T14:16:09.173 に答える
0

コンピュータの一意の識別子を取得する方法は実際にはありません。多くのプログラマーはさまざまなロジックやさまざまなものを適用しますが、ロジックやシステムのいずれも完全な証拠ではありません。そのため、他のプログラマーに簡単に破られないロジックを作成する必要があります。ゲームサーバーを作成しようとしているので、さまざまなロジックを試す必要があり、私が見つけたユニークなものは次のとおりです。

  • ユーザーのIPアドレスを取得できます

  • ユーザー MAC アドレス

  • ユーザーのメールアドレス

  • ユーザー HDD シリアル番号

  • ユーザーのマザーボード名と番号

混合するハッシュとともに組み合わせを作成する必要があるため、キーはすべてのコンピューターで一意のままです

于 2013-08-04T14:33:02.567 に答える