2013-02-21 6 views
2

Je dois générer une clé de licence avec un nom, un titre de produit et une date d'expiration. Si l'un de mes clients achète mon produit et l'utilise, il doit saisir cette clé de licence.Chiffrer et déchiffrer une clé de licence en PHP

J'ai essayé tellement de méthodes et je n'ai aucune idée de comment y parvenir en PHP. La clé doit être sûre pour la reproduction. Quel serait le meilleur moyen de créer un cryptage et un décryptage de clé de licence en PHP?

+0

Il n'y a pas de solutions pour crypter et décrypter des données en PHP? [Où avez-vous regardé?] (Http://www.php.net/manual/en/refs.crypto.php) –

+0

Générez la clé de licence en utilisant 'md5' ou' sha1' et stockez-les dans votre base de données quand elle est demandée comparez-le avec la valeur stockée donnez les résultats souhaités –

+1

Cette façon ancienne d'accorder l'accès à une installation de logiciel au moyen d'une clé de licence à accepter est probablement le meilleur moyen d'éloigner les gens de l'utilisation de votre produit. Repensez. L'expérience montre: le fil que votre entreprise sera ruiné parce que les gens utilisent votre «produit» sans payer pour cela n'est tout simplement pas vrai. Soyez ouvert à la place. Cela fonctionne et a l'air beaucoup mieux. – arkascha

Répondre

1

Le code ci-dessous peut vous aider:

function encrypt($sData, $secretKey){ 
    $sResult = ''; 
    for($i=0;$i<strlen($sData);$i++){ 
     $sChar = substr($sData, $i, 1); 
     $sKeyChar = substr($secretKey, ($i % strlen($secretKey)) - 1, 1); 
     $sChar = chr(ord($sChar) + ord($sKeyChar)); 
     $sResult .= $sChar; 

    } 
    return encode_base64($sResult); 
} 

function decrypt($sData, $secretKey){ 
    $sResult = ''; 
    $sData = decode_base64($sData); 
    for($i=0;$i<strlen($sData);$i++){ 
     $sChar = substr($sData, $i, 1); 
     $sKeyChar = substr($secretKey, ($i % strlen($secretKey)) - 1, 1); 
     $sChar = chr(ord($sChar) - ord($sKeyChar)); 
     $sResult .= $sChar; 
    } 
    return $sResult; 
} 

function encode_base64($sData){ 
    $sBase64 = base64_encode($sData); 
    return str_replace('=', '', strtr($sBase64, '+/', '-_')); 
} 

function decode_base64($sData){ 
    $sBase64 = strtr($sData, '-_', '+/'); 
    return base64_decode($sBase64.'=='); 
} 

Ici

$secretKey; // Your secret key can be anything which you only know it. So no one easily decrypt through any tool. (recommended often change the $secretKey). 
+0

merci.J'ai essayé votre méthode de cryptage avec le $ value = 'test'.Il fonctionne très bien, mais les données de cryptage serait "f'Í'> ÑE6ë ‰ 5» 5ÚR? ~ × ŽvûîmíB½ªVÇV ".can't nous le faisons en tant que caractères alphanumériques ou comme ABCD-HIJK-HGTY? – ram

+0

J'ai changé le script. Regarde. – Prabu

+0

J'ai testé cela comme $ test = 'test20130221'; $ before = encrypt ($ test, 'ABCDEFGHIJKLMN'); // affiche wqa1t3Z1d3p4e3x8 $ après = decrypt ($ before, 'ABCDEFGHIJKLMN'); // affiche - Mw m . Est-ce une façon correcte de tester cela? – ram

0

bien il est NuCoder qui peut fournir ce type de fonctionnalité

+0

Je veux juste faire dans mon paquet. D'une autre manière? – ram

+0

Faut-il un chargeur? Est-il actuellement maintenu? – user4271704

-1

essayer next service www.e-ll.ro | Encrypt with License Key Any PHP Code/Source/Script/Website

-1

Pour une licence locale aller pour ionCube ou openssl de php comme mcrypt est abandonné. Pour la licence à distance aller pour curl de php. Il vous donne probablement une idée de la façon de le faire. http://www.phplicengine.com Je suggère également de jeter un oeil à phpseclib dans github ou packagist. Il utilise d'abord openssl, s'il n'est pas disponible, il passe à mcrypt. Avec openssl ou mcrypt, vous pouvez crypter et décrypter. Comme sur la méthode, je suggère AES_128.

Questions connexes