我做了个软件,想用激活码方式授权,有些只想授权1个星期,光是授权的话,用MD5做加密的,但是怎么让激活码带着授权时间让程序识别呢?请教大神们
认证0级讲师
クライアントのインストールについて考える必要はありません。コンピューターの時刻を変更すると、プログラムは終了します。認証のためにサーバー側に置くことをお勧めします
それは非常に簡単です。1. まず、サーバーを使用して認証コードの有効性を確認します。2. MD5 ルールは、たとえば、認証が 1 か月間有効である場合に生成できます。 MD5(authCode+dateformart( new Date(),"yyyymm")) を使用します。この方法では、認証コードによって生成された MD5 は 1 か月以内に同じになります。つまり、認証コードは有効である必要があることに注意してください。サーバーによって検証され、時刻はサーバーの時刻である必要があります。 3 、クレデンシャル スタッフィングによる解読を防ぐために、MD5 ルールをさらにいくつか追加できます。MD5 (SHA512(salt+authCode+dateformart) (new Date(), "yyyymm"))) なので、Salt を使用することは基本的に不可能です。各 authCode はランダム変数を生成し、サーバーに保存します。
これには多くの方法がありますが、クラックされないという保証はありません。
簡単に言えば、認証コードに時刻情報を追加できます。 たとえば、必要な有効期間が 7 日間の場合、確認コードを生成する要素として確認コードを生成した日の日付を使用できます。 プログラムが検証を行っている場合、現在の日付を取得して 6 日間、合計 7 日間進めて、検証のために同じ方法で 7 つの検証コードを生成します。そのうちの 1 つが正しい場合は、有効期限が切れていないことを意味します。
MD5 の計算にも 1 つの数値を使用していませんか?時間情報を追加するだけで十分ではないでしょうか?
クラックされたくない場合は、サーバーに置くだけで構いません。無料のバックエンドサービスを提供できます(笑)。
最も簡単な方法は、MD5 で暗号化されたアクティベーション コードと日付をデータベースに保存することです。もちろん、アクティベーション コードを繰り返すことはできません。
MD5 暗号化を使用する場合、暗号化された文字列に日付を含めることはできません。解読されたくない場合は、日付に別の暗号化文字列またはプレーン テキストを使用してください。
次のようにデータ構造を設計して、文字列を暗号化します。
サーバー側で行う方が便利です。サーバー側には、有効期限と使用済みかどうかの 3 つのフィールドがあります。
それをredisに入れて有効期限を設定します。 。 。
クライアントのインストールについて考える必要はありません。コンピューターの時刻を変更すると、プログラムは終了します。認証のためにサーバー側に置くことをお勧めします
起動時にHTTPを使用して有効期限が切れているかどうかを確認します。それは非常に簡単です。
1. まず、サーバーを使用して認証コードの有効性を確認します。
2. MD5 ルールは、たとえば、認証が 1 か月間有効である場合に生成できます。 MD5(authCode+dateformart( new Date(),"yyyymm")) を使用します。この方法では、認証コードによって生成された MD5 は 1 か月以内に同じになります。つまり、認証コードは有効である必要があることに注意してください。サーバーによって検証され、時刻はサーバーの時刻である必要があります。
3 、クレデンシャル スタッフィングによる解読を防ぐために、MD5 ルールをさらにいくつか追加できます。MD5 (SHA512(salt+authCode+dateformart) (new Date(), "yyyymm"))) なので、Salt を使用することは基本的に不可能です。各 authCode はランダム変数を生成し、サーバーに保存します。
これには多くの方法がありますが、クラックされないという保証はありません。
簡単に言えば、認証コードに時刻情報を追加できます。
たとえば、必要な有効期間が 7 日間の場合、確認コードを生成する要素として確認コードを生成した日の日付を使用できます。
プログラムが検証を行っている場合、現在の日付を取得して 6 日間、合計 7 日間進めて、検証のために同じ方法で 7 つの検証コードを生成します。そのうちの 1 つが正しい場合は、有効期限が切れていないことを意味します。
MD5 の計算にも 1 つの数値を使用していませんか?時間情報を追加するだけで十分ではないでしょうか?
クラックされたくない場合は、サーバーに置くだけで構いません。無料のバックエンドサービスを提供できます(笑)。
最も簡単な方法は、MD5 で暗号化されたアクティベーション コードと日付をデータベースに保存することです。もちろん、アクティベーション コードを繰り返すことはできません。
MD5 暗号化を使用する場合、暗号化された文字列に日付を含めることはできません。解読されたくない場合は、日付に別の暗号化文字列またはプレーン テキストを使用してください。
次のようにデータ構造を設計して、文字列を暗号化します。
サーバー側で行う方が便利です。サーバー側には、有効期限と使用済みかどうかの 3 つのフィールドがあります。
それをredisに入れて有効期限を設定します。 。 。