软件功能授权如何实现?

yangss2006 2010-05-06 10:52:06
我想实现这样一个通用的功能,我公司的产品对外提供基本的功能,这些功能不进行格外的收费,但是有些延伸的,扩展的,特定的功能必须受控于我公司,现在通用的办法是利用你的PC的网卡地址和一个授权绑定,这样可以实现一个指定的PC上的软件必须要一个指定的授权码,而我们的产品是嵌入式的,对外只有串口,没有PDA部分,这样的话,我们要实现类似的功能,必须依据一个产品的唯一的特性标志,才能达到授权,同时又区分各个产品的目的,如下:
假如客户购买了2个设备A,B,那么客户想要开通特定的功能,必须从我们公司获取相应的授权码AS,BS,同事保证AS和BS是不一样的,而且这些授权码只有我公司才能提供。
之前,没有考虑过这样的问题,我现在打算将产品的ID和授权码进行绑定,这样可以实现上面的要求,但是ID和授权码之间的绑定的算法(就是一个编码)我想考虑的规范些,不想弄得太随意,我同事说,可以把ID逆序输出做授权码,但是这样太简单,太容易被有心人士破解了,我想过使用CRC32编码,将ID的CRC32编码结果作为授权码,但是这样我担心
1. 如果客户对编码熟悉,可能很容易想到CRC32,CRC16等编码,破解难度也不大。
2. CRC32这些循环冗余编码是针对通信误码率应用的,当两个ID的不一样的比特太多时候,可能出现无法识别的问题,也就是AS可能会BS相等的问题,这个是必须避免的问题。
3. 我想尽可能做的规范,不想弄的不伦不类,有这方面经验的朋友提供点建议吧!
谢谢了哈!
...全文
844 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingstarer 2010-05-06
  • 打赏
  • 举报
回复
简单的签名算法就行了

例如rsa

用你的产品id的签名当授权码

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧