AS3 Php密钥生成器

时间:2012-08-04 13:48:57

标签: php actionscript-3 flex air

我正在寻找一种使用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的最后一位数。

2 个答案:

答案 0 :(得分:0)

您正在使用md5算法,这是一种单向散列算法。换句话说,你无法解密它。使用这种散列算法的普通实例不会尝试解密,而是将给定输入(用户密钥)与现有散列进行比较。

如果您需要解密密钥以获取其中包含的信息,您可能必须创建自定义算法,或使用AES等可解密算法,然后base64_encode()加密字符串以使用户友好(但在大多数情况下,它将是一个长串。查看可用于解密的方法的mcrypt函数,以找到符合您需求的方法。

如果您需要特定的密钥格式,如您的示例所示,自定义算法可能是您最好的选择。

答案 1 :(得分:0)

您无法解密MD5哈希。如果您稍后要通过检查“解密”它,您将需要将值存储在MySql表中并每次加密该表中的值以检查它是否与它们放入的密钥匹配。

不要使用AS3加密任何内容,因为有人可以轻松反编译您的.swf并查看您的源代码。