1

Java アプリケーションを特定のユーザーまたはコンピュータにバインドするための安全なソリューションはありますか? たとえば、MAC アドレス (変更できるため安全でない?) またはその他のハードウェア固有のデータを使用しますか?

USBスティック/ドングルのようなハードウェアソリューションを作成したくありませんが、ソフトウェアのユーザーが使用を許可されているかどうかを確認する必要があります.

一般的に、ソフトウェアの著作権侵害に対する最良の選択肢はどれですか?
常時オンライン?
サーバーチェック?
識別にハードウェア データを使用しますか?
...

4

2 に答える 2

1

ローカル システムの識別とオンライン チェックを組み合わせて使用​​すると、以前は効果的に機能していました。この 2 つはおそらく相互に排他的ではありません。次のメソッドの 1 つ以上を使用して、さまざまなシステム関連のプロパティを取得できます。

System.getProperty("user.name");

System.getProperty("user.home");

System.getProperty("os.arch"); // the operating system architecture

System.getProperty("os.name");

System.getProperty("os.version");

これらの詳細は、 java.security.MessageDigestパッケージを使用してハッシュし、サーバー上のユーザー アカウントに関連付けることができます。ユーザーとマシンの認証は、クライアント ソフトウェアが結果のハッシュを起動ルーチンの一部としてサーバーに送信するのと同じくらい簡単です。

于 2012-12-31T00:48:20.260 に答える
1

よくある傾向の 1 つは、ソフトウェアが起動時に (または定期的に) 中央サーバーでライセンスの有効性をチェックする場合です。このようにして、侵害されたライセンスを取り消すことができます。これらのライセンスを管理するサービスはおそらくいくつかありますが、Esellerate が使用されているのを見ました。

同時に、コードの難読化と保護に多大な労力を費やさない限り、Java アプリに追加する保護は簡単にリバース エンジニアリングされたり、単純にオーバーロードされたりする可能性があります。これは非常に難しい作業であり、結果は努力に値しない場合があります。

一部の企業 (たとえば、私が働いている企業) は、基本的なライセンス生成/検証コード以上のことはしません。顧客の誠実さを信頼し、有効なライセンス所有者にのみサポートを提供することはうまく機能します。

于 2012-12-31T06:04:18.610 に答える