java - 如何设计带时间限制的激活码?
PHP中文网
PHP中文网 2017-04-18 10:29:43
0
13
1918

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

PHP中文网
PHP中文网

认证0级讲师

全員に返信(13)
Ty80

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

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

それは非常に簡単です。
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
洪涛

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

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

いいねを押す +0
大家讲道理

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

いいねを押す +0
小葫芦

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

いいねを押す +0
洪涛

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

いいねを押す +0
刘奇

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

いいねを押す +0
黄舟

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

いいねを押す +0
黄舟

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

いいねを押す +0
左手右手慢动作

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート