1日で自分自身を開発できる最も簡単なライセンスキージェネレーターは何ですか? [閉まっている
-
19-09-2019 - |
質問
これは、正直な顧客を正直に保つためだけです。
解決
操作システムの制限はありますか?次のアプローチは非常に簡単だと思います:
マシンIDを取得する方法を選択します。たとえば、これはそうです
MachineGuid
のレジストリエントリHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography
. (一意のマシンIDを生成します)ライセンスを取得することを計画している機能と、それらを識別する方法を定義します。名前を付けることができます。あなたの製品がシンプルな場合、それは機能自体になります。
パブリック/プライベートキーペアを作成します。
何らかの方法で顧客のマシンIDを取得します。あなたは彼に手動でそれを送るように頼むことができます、またはあなたはあなたがあなたのアプリケーションで特別なコマンドになることができます、またはあなたはあなたがあなたのアプリケーションで特別なコマンドになることができます。
機能IDとマシンIDを何らかの方法で組み合わせて、結果を秘密鍵で署名します。たとえば、連結によりその組み合わせを作成できます。その場合、結果文字列は次のようになります:「YourApplicationName-12345678-9ABC-DEF0-1234-56789ABCDEF0」
署名はバイトのシーケンスになるため、テキスト形式で渡す場合は、コンバージョンを行う必要があります。たとえば、署名をに変換できます base64 ストリング。 機能ID、マシンID、およびそれらの組み合わせの署名の組み合わせは、ライセンスキーになります!
アプリケーション配布に公開キーを含め、ライセンス検証のロジックを追加します。ライセンスが有効な場合は、正しいマシンで使用されており、正しいアプリケーションで使用されていることを確認する必要があります。
パブリック/プライベートキーオペレーションの詳細 ここ.
何かが不明であるかどうかを教えてください、そして私は詳細な答えを提供しようとします。
編集: これらすべての実装は1日で行うことができると確信していますが、既存のソリューションを使用することを提案する他の人に同意します。さまざまなプラットフォームやプログラミング言語にはたくさんあります。
他のヒント
他の誰かからそれを手に入れてみませんか。あなたが一日だけを置くことをいとわないなら、あなたは良い製品を手に入れるつもりはありません。
ライセンスキーは、キーがサーバー名などのハッシュに関連付けられていない限り、顧客がソフトウェアのインストールを数回阻止しません。
プレーンテキストファイルに製品の機能(ユーザー数、ホストIP、有効期限など)を配置します。公開キーでファイルに署名し、実行時に署名を確認します。
彼らがやる気があれば、彼らはコードを逆コンパイルしたり、小切手や何でも引っ張ったりすることができますが、改ざんを阻止し、それはすべて素晴らしく公式に見えます。
1日で良い仕事をすることはできません。全体的な効果が否定的になる可能性があります。それはあなたの忠実で正直な顧客を悩ませ、不正な顧客を止めることはありません。
代わりに、あなたの製品がどれだけの著作権侵害を得ているかを何らかの形で測定する方法を考え出すためにその日を費やしてください。これを知ったら、あなたがどれだけのお金を失っているか、そしてあなたが本当にどれだけの努力を保護または他のアプローチに投入すべきかを見積もることができます。
それでもあなたがそれをやりたい場合は、最も簡単な方法は、インストールのためにユニークなデータを収集することです(OSユーザー名、メールアドレス、CPU/マザーボードのシリアル番号 - それを結びたいものは何でも)、ユーザーに送信するように依頼しますあなたに、あなたの秘密鍵でそれを暗号化することにより、ライセンスキーを生成します。ソフトウェアは、同じデータを収集し、公開キーでライセンスを復号化し、2つのブロブを比較する必要があります。
擬似コード(どのラング /プラットフォーム?)だけが必要な場合は、コンピューターMacアドレス(一意であると思われる)を取得し、他のコンピューターパラメーターを組み合わせた関数を構築し、アプリが実行されるたびに検証することを確認できます。自分のDBに対して、ユーザーのメールをその行に保管します。
何かが変更された場合 - ソフトウェアは機能しませんが、ユーザーは同じメールで新しいキーを要求できます - 古いキーを取り消して新しいキーを与えることができます。
最もシンプルなライセンスジェネレーター:シードされたチェックサムを備えたINIファイル。これには、顧客名とどのモジュールが有効になっているかについての情報が含まれています。ハッカーのために壊れるのは非常に簡単ですが、非ハッカーにとっては安全です。他の潜在的な顧客がライセンスファイルを使用できないように、名前は公開されているアプリからの出力に表示される必要があります。