从序列号生成激活密钥

Dav*_*vid 8 .net c# vb.net asp.net algorithm

我的设备具有唯一的序列号(字符串增量)例如:AS1002和AS1003.

我需要找出一种算法来为每个序列号生成一个唯一的激活密钥.

对此最好的方法是什么?

谢谢 !

(这必须离线完成)

sll*_*sll 1

如果您的设备有一些安全内存,无法通过连接编程器或其他设备来读取 - 您可以存储一些关键代码,然后使用任何散列算法,例如MD5SHA-1/2来通过以下方式生成散列:

HASH(PUBLIC_SERIALNUMBER + PRIVATE_KEYCODE)
Run Code Online (Sandbox Code Playgroud)

并且 SERIALNUMBER + KEYCODE 对应存储在本地数据库中。

这样:(离线

  • 客户打电话给您并询问激活码
  • 您询问特定设备的序列号
  • 然后,您在本地数据库中通过给定的序列号搜索 KEYCODE 并生成激活码(即使使用 MD5,只要 KEYCODE 私下存储在您的数据库中,这也是安全的)
  • 客户端将激活码输入设备,设备能够通过自己的SERIALNUMBER和KEYCODE生成哈希值,然后与用户输入的激活码进行比较

如果设备具有板载安全内存(如智能卡),则可以通过存储激活代码本身来简化这一过程。通过这种方式,您可以保留自己的序列码 - 激活码对数据库。