私の会社が作成して販売している商用ソフトウェアは、現在、Base-64 でエンコードされた RSA 暗号化ライセンス キーを使用しています。結果の長さは約 90 文字です。かさばり、使いにくく、ユーザー エラーが発生しやすくなります。一部のユーザーは、コピー アンド ペーストをよく理解せず、手動でキーを入力しようとします。
現在のアルゴリズムを、他のプログラムで使用されている 30 文字のキーなど、より小さなキーを作成するアプローチに置き換えたいと考えています。さらに、多くのソフトウェア ベンダーが、数字と大文字のみを使用するキーを使用していることに気付きました。
ユーザー名、製品 ID、およびバージョン番号を埋め込んだ合理的に安全なキーを生成するために使用できるアルゴリズムは何ですか? 結果のライセンス キーは 30 文字以内で、数字と大文字のみを使用しますか?
(重要な場合は、Java でコーディングしています。)
だから...ここから始めましょう:
public String createLicenseKey(String customerName, String productId, String versionNumber) {
// what goes here?
return licenseKey;
}
String key = createLicenseKey("Max Headroom", "ABCD", "4");
// key should now be in format AAAAAA-AAAAAA-AAAAAA-AAAAAA-AAAAAA