如何生成注册码
想做个软件加密,
1. 首先根据用户的硬件信息生成10位的特征数字
2. 采用注册机根据特征数字生成一个20位注册码, 如WART1-R2STA-4CR3K-TLI03
3. 用户输入注册码注册成功
前1步没问题 第2 3步有没有什么好的思路, 目前我手中已有RSA 及BASE64的API
[解决办法]
dsa 做签名吧, 20字节 base64 下28字节, 勉强可以算比较传统的注册码形式 ..
[解决办法]
对了,输出的结果还必须是可见字符
有两个选择
1。用16进制数来表示
2。用base64将得到的hash值编码
[解决办法]
DSA签名没有看到
在做注册码的时候没有必要使用非对称算法,除非必须让用户在网上注册。
DSA只能用于签名,在做注册码的时候你对什么签名呢?
DSA这种非对称算法处理数据的效率非常低
这种算法用于网络上的身份识别是非常棒的,但是我重来没有见过用签名算法作注册码的
[解决办法]
感觉回答的思路不对啊.和加密没有直接关系
你的需求是生成一个伪随机数阿.
1. 首先根据用户的硬件信息生成10位的特征数字
-- 相当于种子,用于生成随机数
2. 采用注册机根据特征数字生成一个20位注册码, 如WART1-R2STA-4CR3K-TLI03
-- 相当于伪随机数生成器, 输出长度自己定,最后用一个格式化函数,将随机数映射到ASCII字符集合
3. 用户输入注册码注册成功
[解决办法]
对用户的硬件信息签名--签名使用私钥
程序对用户的硬件信息签名--这应该是在本机进行操作
dsa签名的公钥嵌入到应用程序中--这也就是说公钥,私钥都嵌在程序中
这中设计怎么能够防治生成注册机??
//////////////////////////////////////////////////
我个人认为,除了网络注册
单机注册只能通过技术让注册码破解更麻烦,想要完全防止生成注册机是不可能的。
[解决办法]
晕死, 客户端当然只验证签名, 存储私钥干嘛 ...
先收集用户的硬件信息, 生成注册请求, 以明文方式用邮件等方式发送回来 ...
作者确认后用私钥签名, 发送给用户作为注册码 ...
程序启动时收集硬件信息, 用公钥验证注册码是否有效 ...
[解决办法]
jiangbin00cn(地方可怕) ( ) 信誉:100 2007-7-25 20:36:48 得分: 0
DSA签名没有看到
在做注册码的时候没有必要使用非对称算法,除非必须让用户在网上注册。
//////////////////////////////////////////////////////////////////////////
你这种方法安全性不错,
但是有两个缺点:
1。必须让用户上网,或者让用户将生成的硬件信息email给你。
2。没个产品都需要配一对密钥,如果产品多的话,数据管理是一个问题。
mLee79,你是做CA的?
[解决办法]
现在不能上网的机器不多了吧, 即使不能上网, 用短信发总是可以的吧, 把收集的硬件信息做sha , base64 后让人用短信发过来, 注册码也用短信发回去可以吧
数据管理不用担心吧, 如果这软件只卖出去几十万份拷贝( 这个难度已经够大了吧 ), 随便台破机器随便搞个数据库都对付得过来, 如果能卖出去几百万份拷贝,那就更没问题了 ...