[解決済み] C#アプリケーションのプロダクトキーを作成するにはどうすればよいですか?
質問
C# アプリケーションのプロダクト キーはどのように作成すればよいですか。
私は、毎年更新する製品 (またはライセンス) キーを作成する必要があります。 さらに、試用版のためのキーを作成する必要があります。
関連する
どのように解決するのですか?
アプリケーションに認証させたいデータを含むレコードを作成するようなことをすることができます。たとえば、有効にするプログラムの機能、有効期限、ユーザー名 (ユーザーにバインドする場合) など、何でも含めることができます。次に、それを暗号アルゴリズムで暗号化するか、ハッシュ化します。そして、それをプログラム内で検証するだけです。ライセンス ファイルを配布する 1 つの方法 (Windows) は、レジストリを更新するファイルとして提供します (ユーザーがそれを入力する手間を省くことができます)。
遅かれ早かれ、誰かがこのチェックをスキップするためにあなたのプログラムにパッチを適用し、パッチを適用したバージョンを配布することでしょう。あるいは、すべてのチェックをパスするキーを作成し、それを配布したり、時間を逆行させたりするでしょう。どんなに複雑な仕組みを作っても、結局は「隠蔽によるセキュリティ」であり、必ず実行されるのです。たとえできなかったとしても、誰かがハッキングしたものを配布してしまうでしょう。ドングルを提供する場合も同様で、誰かが望めば、そのチェックにパッチを当てることができます。コードをデジタル署名しても、その署名を削除したり、辞任させたりすることができます。
デバッガなどでプログラムが実行されないようにするテクニックを使用すれば、問題を少し複雑にすることができますが、これでも弾丸のように確実ではありません。したがって、正直なユーザーが支払いを忘れることがないように、十分に難しくする必要があります。また、お金を払っているユーザーにとって、そのスキームが邪魔にならないよう十分に注意してください。
ユーザーに一意の ID を提供し、その ID が持つべき機能をオンラインでチェックし、ある期間キャッシュしておくだけです。しかし、同じ注意事項がすべて適用され、人々はこのように何でも回避することができます。
キーを忘れたユーザーなどに対処しなければならないサポート費用も考慮してください。
編集部: 付け加えると、この問題にあまり時間を費やしたり、複雑なスキームが異なっていてクラックされないと考えたりしないでください。そうではなく、プログラムが動作するハードウェアと OS を人々がコントロールする限り、そうなることはあり得ません。開発者は、このために独自のシステムを開発すれば、自分たちだけが知っているので「より安全」だと考え、これまで以上に複雑なスキームを考え出そうとしてきました。しかし、これは永久機関を作ろうとするプログラミングに等しいものです。)
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] ランダムな英数字の文字列を生成するにはどうすればよいですか?
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] .NETアプリケーションを強制的に管理者として実行させるにはどうしたらいいですか?
-
[解決済み】ソフトウェアのライセンスキーを生成して検証する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み】ソフトウェアのライセンスキーを生成して検証する方法は?