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

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

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(13)
Ty80

Ne pensez même pas à installer le client. Si vous modifiez l'heure de l'ordinateur, le programme sera terminé. Il est recommandé de le mettre côté serveur pour l'authentification. Au démarrage, utilisez HTTP pour vérifier s'il a expiré côté serveur

.
Ty80

C'est très simple,
1. Tout d'abord, utilisez le serveur pour vérifier la validité du code d'autorisation ;
2 Les règles MD5 peuvent être générées en ajoutant du temps. Par exemple, l'autorisation est valable un mois. , alors votre MD5 peut être utilisé MD5(authCode+dateformart(new Date(),"yyyymm")), de cette façon, le MD5 généré par votre code d'autorisation sera le même dans un mois, c'est-à-dire que le code d'autorisation est valide. Notez qu'il doit être vérifié par le serveur et que le temps doit être pris. Temps du serveur ;
3. Les règles MD5 peuvent être ajoutées à quelques couches supplémentaires pour empêcher le bourrage et le piratage des informations d'identification. Vous pouvez ajouter MD5 (SHA512(. salt+authCode+dateformart(new Date(), "yyyymm"))), donc fondamentalement, il est impossible de le déchiffrer. Si vous utilisez salt, vous pouvez générer une variable aléatoire pour chaque authCode et l'enregistrer sur le serveur.

洪涛

Il existe de nombreuses méthodes pour cela, mais rien ne garantit qu'il ne sera pas craqué.

Pour faire simple, vous pouvez ajouter des informations temporelles au code de vérification.
Par exemple, si la période de validité dont vous avez besoin est de 7 jours, vous pouvez utiliser la date du jour où vous générez le code de vérification comme facteur pour générer le code de vérification.
Lorsque votre programme effectue une vérification, obtenez la date actuelle et avancez-la de six jours, pour un total de 7 jours, et générez 7 codes de vérification de la même manière pour la vérification. Si l’un d’eux est correct, cela signifie qu’il n’a pas expiré.

大家讲道理

N'utilisez-vous pas également un seul chiffre pour calculer votre MD5 ? Ne suffirait-il pas d'ajouter simplement les informations temporelles ?

小葫芦

Si vous ne voulez pas être cracké, vous ne pouvez le mettre que sur le serveur, je peux vous fournir des services back-end gratuits, haha

.
洪涛

Le moyen le plus simple est de stocker votre code d'activation crypté md5 + date dans la base de données. Jugez simplement l'heure lors de la vérification. Bien entendu, le code d'activation ne peut pas être répété. Vous pouvez définir une clé primaire ou un index unique

.
刘奇

Si vous utilisez le cryptage md5, vous ne pouvez pas mettre la date dans la chaîne cryptée. Utilisez une autre chaîne cryptée ou du texte brut pour la date. Si vous ne voulez pas être piraté, utilisez l'authentification du serveur

.
黄舟

Vous pouvez concevoir la structure des données comme ceci : {'a':'Verification code','b':'Expiration time (durée depuis 1970)'}, puis chiffrer la chaîne.

黄舟

Il est plus pratique de le faire côté serveur. Il y a trois champs côté serveur, l'heure d'expiration et si elle a été utilisée. Le client a seulement besoin de connaître la clé

.
左手右手慢动作

Mettez-le dans Redis et définissez le délai d'expiration. . .

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!