質問

?(例えばMACアドレスを変更すると)

簡単に偽装可能ではありませんC ++でのMicrosoft Windows上で一意のハードウェアIDを生成するための最良の方法は何ですか
役に立ちましたか?

解決

Windowsは、レジストリ内のマシンごとに一意のGUIDを格納します:

HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\MachineGuid

他のヒント

これは、CPUのシリアル番号であるために使用されるが、今日のマザーボードの多くの種類があると、この要因は正確ではありません。 MACアドレスは簡単に偽造できます。これは、内部ハードドライブのシリアル番号を私たちに残します。参照してください:ます。http://www.codeproject。 COM /記事/ 319181 / Haephrati探索-ため、信頼性の高い、ハードウェアID

「トリック」のさまざまありますが、唯一の本当の「物理的な答えは、」「いいえ、解決策はありません」です。

A「マシン」の周りにいくつかのハードウェアを備えたパッシブバス以外の何ものでもありません。 鉄の各部分が、何らかの形で使用可能な識別子を提供することができるが、鉄のすべての部分は、あなたが完全に意識することはありません(あなたがこの上の機能をベースにすれば、あなたはあなたに問題を作成し、悪いものは何でもまたは正当な理由のために、ユーザに置き換えることができしたがって、ユーザー、そして自分自身にハードウェアを交換する必要があるたびにconsequence-を-as /再初期化/再構成などなど。)。

さて、あなたの問題は、多くのマシンがしなければならない状況でマシンを識別している場合は一緒に相互運用、これはよくMACまたはIPアドレスまたはホスト名が果たす役割です。

- しかし、(代わりに、あなたの起動のいずれかの時に「それから発見」一生懸命コードにそれらを避けるため)、彼らは長い時間周期に必ずしも一定ではないという考えに調製することが あなたの問題は、ソフトウェアインスタンスまたはライセンスを識別-instead-ある場合は、

、あなたは解決策の別の種類に集中するために、おそらくより良い持っている:あなたは、それはお金を持っているユーザーではなく、自分のコンピュータである(「ユーザー」にライセンスを販売します!)、それ故に彼らの「マシン」(あなたは、ハードウェアやOSのライセンスをdin'tするので、ユーザーは、彼らは次のように/を必要なときにあなたの許可なしに変更することが自由でなければならないことを...)、にあなたの問題が識別することはないではありませんマシンが、USER(同じマシンは、多くのユーザーのためのホストで、同じユーザーがマシンのさまざまな仕事ができるということを考える...、あなたは1課す/負いかねます。いくつかの種類に実行せずに、1の関係をこのイディオムのIFS)は無よりフィット感を見つけます。

問題遅かれ早かれ、の

アイデアは彼らにあなたが生成する鍵を与え、やや到達可能なサイトにユーザーを登録し、同じユーザー/鍵のペアがされていないことを確認しなければなりませんCON-一時的に一定の期間の下倍の合意された数よりも多くを使用。違反を超え、またはキーが古くなると、単にブロックして、ユーザーが更新するのを待ちます。

あなたが見ることができるように

、答えはほとんど質問自体からよりも、あなたの質問の背後にある理由によって異なります。

読み取りおよびマシン鍵を形成するために組み合わせることができ、ハードウェアに割り当てられた種々のIDが存在します。たとえば、あなたは、これらのいくつかは、より簡単に他のものより設定が可能などのソフトウェアが格納されているハードドライブ、のproc IDのIDを取得することもできますが、強度の一部は限らないこと一緒に多数の部品を組み合わせることですそれだけで十分に強いています。

を使用するWin32のシステムHDSのAPI。 レジストリを読んではいけない、それがすべてでは意味がありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top