ホームページ  >  に質問  >  本文

java - 如何设计带时间限制的激活码?

我做了个软件,想用激活码方式授权,有些只想授权1个星期,光是授权的话,用MD5做加密的,但是怎么让激活码带着授权时间让程序识别呢?
请教大神们

PHP中文网PHP中文网2740日前1805

全員に返信(13)返信します

  • PHP中文网

    PHP中文网2017-04-18 10:31:43

    クライアントのインストールについて考える必要はありません。コンピューターの時刻を変更すると、プログラムは終了します。認証のためにサーバー側に置くことをお勧めします

    起動時にHTTPを使用して有効期限が切れているかどうかを確認します。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:31:43

    それは非常に簡単です。
    1. まず、サーバーを使用して認証コードの有効性を確認します。
    2. MD5 ルールは、たとえば、認証が 1 か月間有効である場合に生成できます。 MD5(authCode+dateformart( new Date(),"yyyymm")) を使用します。この方法では、認証コードによって生成された MD5 は 1 か月以内に同じになります。つまり、認証コードは有効である必要があることに注意してください。サーバーによって検証され、時刻はサーバーの時刻である必要があります。
    3 、クレデンシャル スタッフィングによる解読を防ぐために、MD5 ルールをさらにいくつか追加できます。MD5 (SHA512(salt+authCode+dateformart) (new Date(), "yyyymm"))) なので、Salt を使用することは基本的に不可能です。各 authCode はランダム変数を生成し、サーバーに保存します。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:31:43

    これには多くの方法がありますが、クラックされないという保証はありません。

    簡単に言えば、認証コードに時刻情報を追加できます。
    たとえば、必要な有効期間が 7 日間の場合、確認コードを生成する要素として確認コードを生成した日の日付を使用できます。
    プログラムが検証を行っている場合、現在の日付を取得して 6 日間、合計 7 日間進めて、検証のために同じ方法で 7 つの検証コードを生成します。そのうちの 1 つが正しい場合は、有効期限が切れていないことを意味します。

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:31:43

    MD5 の計算にも 1 つの数値を使用していませんか?時間情報を追加するだけで十分ではないでしょうか?

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 10:31:43

    クラックされたくない場合は、サーバーに置くだけで構いません。無料のバックエンドサービスを提供できます(笑)。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:31:43

    最も簡単な方法は、MD5 で暗号化されたアクティベーション コードと日付をデータベースに保存することです。もちろん、アクティベーション コードを繰り返すことはできません。

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 10:31:43

    MD5 暗号化を使用する場合、暗号化された文字列に日付を含めることはできません。解読されたくない場合は、日付に別の暗号化文字列またはプレーン テキストを使用してください。

    返事
    0
  • 黄舟

    黄舟2017-04-18 10:31:43

    次のようにデータ構造を設計して、文字列を暗号化します。

    返事
    0
  • 黄舟

    黄舟2017-04-18 10:31:43

    サーバー側で行う方が便利です。サーバー側には、有効期限と使用済みかどうかの 3 つのフィールドがあります。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 10:31:43

    それをredisに入れて有効期限を設定します。 。 。

    返事
    0
  • キャンセル返事