2012-08-09 66 views
0

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

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

+2

您已完成的任何代码? – 2012-08-09 13:54:51

回答

1

由于电子邮件地址可能超过24个字符,因此这是不可能的。 (简而言之,您不能在X字节中编码X字节的信息而不丢失)。

我建议采用不同的方法。

在你的办公室:

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

客户的PC:

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

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

相关问题