0

24文字の長さの文字列があります。これは、ソフトウェアをインストールするためにお客様に提供した製品IDです。この文字列からメールアドレスを取得する必要があります。この文字列でメールアドレスをエンコードしてデコードする必要があります。それを行うことは可能ですか?

メールアドレスをバイト配列に変換し、製品IDのバイト配列で追加しようとしました。ただし、製品IDの長さが長すぎて、ロック解除キーの長さが標準形式ではないようです。これを解決するのを手伝ってください。

4

1 に答える 1

1

電子メールアドレスは24文字を超える可能性があるため、これは不可能です。(簡単に言えば、Xバイトの情報をY <Xバイトで損失なくエンコードすることはできません)。

別のアプローチを提案します。

あなたのオフィスで:

  • ライセンスデータベースに、顧客の電子メールアドレスを保存します。
  • 電子メールアドレスといくつかの秘密の値に基づいてハッシュコードを計算します。これはアクティベーションコード(「製品ID」と呼ばれるもの)です。

お客様のPCの場合:

  • インストール中に、顧客に電子メールアドレスとアクティベーションキーを入力してもらいます。
  • セットアッププログラムに、入力された電子メールアドレス(およびシークレット)のハッシュを計算させ、それをアクティベーションキーと比較します。一致すれば、すべて問題ありません。そうでない場合は、エラーを表示します。

これにより、電子メールアドレスのハッシュを埋め込むだけでよいため、アクティベーションコードを短くすることができます。もちろん、ハッシュ関数は元に戻せないため、ハッシュから電子メールアドレスを再作成することはできません。したがって、インストール時に電子メールアドレスを入力する必要があります。

于 2012-08-09T13:58:49.210 に答える