0

以下のコードを使用してプロセッサ ID を取得しています。

System.Management.ManagementClass theClass = new System.Management.ManagementClass("Win32_Processor");
System.Management.ManagementObjectCollection theCollectionOfResults = theClass.GetInstances();

foreach (System.Management.ManagementObject currentResult in theCollectionOfResults)
{
    MessageBox.Show(currentResult["ProcessorID"].ToString());
}

プロセッサー ID は、すべてのコンピューターに固有の ID ですか? AES 暗号鍵として使用するすべてのコンピューターのランダムな一意の番号を生成したいと考えています。MACアドレスは変更できることを知っているので、MACアドレスを使用したくありません。

4

2 に答える 2

0

CPU は CPUID 命令をサポートする必要があり、システムには複数の CPU が含まれている可能性があるため、これは悪い解決策です。

于 2012-06-13T13:43:30.760 に答える
0
  1. プロセッサ ID は、すべての CPU で一意であることが保証されているわけではなく、存在することも保証されていません。
  2. ハードウェアは交換できます - その事実を変えることはできません。

提案:
マシンを一意に識別する必要がある場合は、一意性のためにプロセッサ ID または MAC アドレス、またはその両方を使用してもかまいません。(またはその他のハードウェア関連の番号)。ただし、ユーザーではなくハードウェアを識別していることを覚えておく必要があります。そのため、ハードウェアが変更された場合、知っている人がフェイスリフトを行ったのに、その人を認識できなくなったようなものです。

ユーザーを識別する必要がある場合 (私はそのほうがよいと思います)、ユーザー名とパスワードを選択させます。

以前に特定された 1 人のユーザーのみがアプリを使用していることを確認する必要があり、そのユーザーがアプリの海賊版を作成するのではないかと心配している場合.. 唯一の方法は、サーバー/中心点を持つことです。

于 2012-06-13T13:45:37.693 に答える