2012-08-04 168 views
0

我正在尋找一種方法來使用AS3或PHP生成許可證密鑰。 我需要使用用戶名應用程序,版本號和最大用戶數來計算密鑰。AS3 Php密鑰生成器

例如,這裏是代碼:

<?php 
    error_reporting(E_ALL); 
    function KeyGen($userName){ 
    $key = md5($userName); 
    $new_key = ''; 
    for($i=1; $i <= 25; $i ++){ 
       $new_key .= $key[$i]; 
       if ($i%5==0 && $i != 25) $new_key.='-'; 
    } 
    return strtoupper($new_key); 
    } 

    $userCab="MyUserName-v6.0-12"; 
    $key=KeyGen($userCab); 
echo $key; 
?> 

的生成關於這樣鍵:1AS7-09BD-96A1-CC8D-F106。 但現在,如何解密這個密鑰來提取$ userCab的最後兩位數字。

+0

您有具體問題嗎? – JeffryHouser 2012-08-04 14:26:02

回答

0

您正在使用md5算法,該算法是單向哈希算法。換句話說,你不能解密它。使用像這樣的散列算法的普通實例不會嘗試解密,而是將給定的輸入(用戶的密鑰)與現有的散列進行比較。

如果您需要解密密鑰以獲取它包含的信息,您可能需要創建一個自定義算法,或者使用AES等可解密的算法,然後加密的字符串具有用戶友好的東西(但它會在大多數情況下是一個很長的字符串)。查看可用的mcrypt函數,找到可解密的方法以找到適合您需求的方法。

如果您需要特定的密鑰格式,如您的示例所示,自定義算法可能是您最好的選擇。

0

您無法解密MD5散列。如果您稍後要使用支票「解密」它,您將需要將值存儲在MySql表中,並且每次都對該表中的值進行加密,以檢查它是否與它放入的密鑰相匹配。

不要使用AS3來加密任何東西,因爲某人可以輕鬆地反編譯您的.swf並查看您的源代碼。