0

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 桁を抽出する方法を説明します。

4

2 に答える 2

0

md5一方向ハッシュアルゴリズムであるアルゴリズムを使用しています。つまり、復号化できません。このようなハッシュ アルゴリズムを使用する通常のインスタンスは、復号化を試行せず、代わりに、指定された入力 (ユーザーのキー) を既存のハッシュと比較します。

キーに含まれる情報を取得するためにキーを復号化する必要がある場合は、カスタム アルゴリズムを作成するか、AES などの復号化可能なアルゴリズムを使用してからbase64_encode()、暗号化された文字列を使いやすいものにする必要があります (ただし、長い文字列になります。ほとんどの場合)。復号化可能なメソッドで利用可能なmcrypt関数を見て、ニーズに合ったものを見つけてください。

例が示すように、特定のキー形式が必要な場合は、カスタム アルゴリズムが最善の策です。

于 2012-08-04T16:26:11.067 に答える
0

MD5 ハッシュを復号化することはできません。後でチェックを使用して「復号化」する場合は、MySql テーブルに値を保存し、そのテーブルの値を毎回暗号化して、入力したキーと一致するかどうかを確認する必要があります。

AS3 を使用して何かを暗号化しないでください。誰かがあなたの .swf を簡単に逆コンパイルしてソース コードを見ることができるからです。

于 2012-08-04T16:26:23.813 に答える