Maison > Questions et réponses > le corps du texte
我做了个软件,想用激活码方式授权,有些只想授权1个星期,光是授权的话,用MD5做加密的,但是怎么让激活码带着授权时间让程序识别呢?
请教大神们
PHP中文网2017-04-18 10:31:43
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
.PHP中文网2017-04-18 10:31:43
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.
PHP中文网2017-04-18 10:31:43
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é.
大家讲道理2017-04-18 10:31:43
N'utilisez-vous pas également un seul chiffre pour calculer votre MD5 ? Ne suffirait-il pas d'ajouter simplement les informations temporelles ?
高洛峰2017-04-18 10:31:43
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
.PHP中文网2017-04-18 10:31:43
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
.怪我咯2017-04-18 10:31:43
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
.黄舟2017-04-18 10:31:43
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.
黄舟2017-04-18 10:31:43
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é
.