我做了个软件,想用激活码方式授权,有些只想授权1个星期,光是授权的话,用MD5做加密的,但是怎么让激活码带着授权时间让程序识别呢?
请教大神们
PHP中文网2017-04-18 10:31:43
クライアントのインストールについて考える必要はありません。コンピューターの時刻を変更すると、プログラムは終了します。認証のためにサーバー側に置くことをお勧めします
起動時にHTTPを使用して有効期限が切れているかどうかを確認します。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 はランダム変数を生成し、サーバーに保存します。
PHP中文网2017-04-18 10:31:43
これには多くの方法がありますが、クラックされないという保証はありません。
簡単に言えば、認証コードに時刻情報を追加できます。
たとえば、必要な有効期間が 7 日間の場合、確認コードを生成する要素として確認コードを生成した日の日付を使用できます。
プログラムが検証を行っている場合、現在の日付を取得して 6 日間、合計 7 日間進めて、検証のために同じ方法で 7 つの検証コードを生成します。そのうちの 1 つが正しい場合は、有効期限が切れていないことを意味します。
PHP中文网2017-04-18 10:31:43
最も簡単な方法は、MD5 で暗号化されたアクティベーション コードと日付をデータベースに保存することです。もちろん、アクティベーション コードを繰り返すことはできません。
怪我咯2017-04-18 10:31:43
MD5 暗号化を使用する場合、暗号化された文字列に日付を含めることはできません。解読されたくない場合は、日付に別の暗号化文字列またはプレーン テキストを使用してください。