0

我有 24 个字符长度的字符串。这是我们提供给客户以安装我们的软件的产品 ID。我需要从此字符串中获取电子邮件地址。我需要用这个字符串编码电子邮件地址并解码。有没有可能做到这一点?

我试图将电子邮件地址转换为字节数组并将其添加到产品 ID 字节数组中。但似乎产品id长度增加太多,解锁密钥长度不是标准格式。请帮我解决这个问题。

4

1 回答 1

1

由于电子邮件地址可以超过 24 个字符,因此这是不可能的。(简单地说,你不能在 Y < X 字节中无损地编码 X 字节的信息)。

我建议采用不同的方法。

在您的办公室:

  • 在您的许可数据库中,存储客户的电子邮件地址。
  • 根据电子邮件地址和一些秘密值计算哈希码。这是您的激活码(您称之为“产品 ID”)。

在客户的 PC 上:

  • 在安装过程中,让您的客户输入他的电子邮件地址和激活密钥。
  • 让安装程序计算输入的电子邮件地址(加上密码)的哈希值,并将其与激活密钥进行比较。如果匹配,一切都很好。如果没有,则显示错误。

这可以让您的激活码保持简短,因为您只需要嵌入电子邮件地址的哈希值。当然,由于散列函数是不可逆的,您不能从散列中重新创建电子邮件地址;因此,有必要在安装过程中输入电子邮件地址。

于 2012-08-09T13:58:49.210 回答