如何解决以下难题。有好思路可以加分。

abc83915 2010-04-13 03:15:04
1. 怎么保障这个值只在一台机器上有效使用,移植出去程序不能使用
2. 如何保障只有我能生成合法的值,而客户不行

我有一个程序,安装在客户服务器上,如何能做到以上两点。达到这个程序只有我能控制而客户修改不了目的
...全文
447 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
xt218218 2010-04-21
  • 打赏
  • 举报
回复
取个名字困难 搞个图片也困难
xray2005 2010-04-17
  • 打赏
  • 举报
回复
1,加密狗。
2,帮硬件物理地址和guid
3,和主板信息绑定
moodboy1982 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用 45 楼 vrhero 的回复:]

引用 42 楼 moodboy1982 的回复:
既然硬盘都坏了,你觉得程序还在吗?莫非你的程序安装在内存中?

硬盘坏了换新的,你还不准人家在新硬盘上装程序吗?你当你是中石油啊...

你一定没见过大型企业环境,我以前有个客户每个月换下来的硬盘都有一纸箱...
[/Quote]

就算楼主像你所说,一个月换一箱硬盘,但换上新硬盘,程序还是要重新安装在新硬盘上呀。在这种情况下,一般的软件都需要写特征码的。
qiqi77520 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 jiandong3471 的回复:]

用USB KEY 认证比较合适@!
[/Quote]

usb key
Justin-Liu 2010-04-17
  • 打赏
  • 举报
回复
去硬件ID生成唯一识别码 用WMI
mrsupersky 2010-04-17
  • 打赏
  • 举报
回复
联网啊,和多重绑定啊!
生成发布key时要求客户端将信息发送到你的数据库里!
比如当服务器侦测到有一台以上,就判定程序到底是谁的,不是主机,发送一条命令over掉那台机器上的程序,就ok啦!
这也算是后门吧!
就像黑屏事件,我只有这个思路!
加油馒头 2010-04-16
  • 打赏
  • 举报
回复
.....................
None465465535 2010-04-15
  • 打赏
  • 举报
回复
用MAC等硬件信息来生成注册码(由客户端上传至服务器由服务器生成)
qgqqiang 2010-04-15
  • 打赏
  • 举报
回复
顶下,采用dns进行加密
yyh 2010-04-15
  • 打赏
  • 举报
回复
学习了。。。
vrhero 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 42 楼 moodboy1982 的回复:]
既然硬盘都坏了,你觉得程序还在吗?莫非你的程序安装在内存中?
[/Quote]
硬盘坏了换新的,你还不准人家在新硬盘上装程序吗?你当你是中石油啊...

你一定没见过大型企业环境,我以前有个客户每个月换下来的硬盘都有一纸箱...
danjiewu 2010-04-14
  • 打赏
  • 举报
回复
每台电脑的CPU、硬盘序列号都不一样,MAC地址也不一样但是容易伪造。
1.根据CPU、硬盘序列号这些唯一标识生成散列值,比如MD5就可以。
2.用非对称加密算法生成公钥私钥对,比如RSA,私钥由开发人员或者开发商保管,公钥保存在程序里。
3.开发人员或者开发商用私钥对步骤2得到的散列值进行加密,得到密文保存成文件,保存在需要安装程序的电脑里。
4.程序启动时重新计算当前电脑的散列值,并与用公钥解密密文得到的散列值进行比较,若不符合则报错退出。

当然前提是你的程序不能被反编译,这又是另外一个问题了。
myhuli120 2010-04-14
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分
moodboy1982 2010-04-14
  • 打赏
  • 举报
回复
MAC不可靠,还是硬盘ID之类吧。用加密狗也可以,但要考虑到额外的成本,估计不是楼主所想要。
moodboy1982 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vrhero 的回复:]

除了硬件加密狗之外没有100%有效的方法...

很多软件都取某个或某些硬件的特征码计算出一个key,但是...取硬盘ID用户换硬盘怎么办?取CPU ID用户换CPU怎么办?不要搞到用户每修一次电脑你就得重新给人家一个key...这种方法只适用于智能手机这类不太容易坏,坏了一般也不换大件的设备...
[/Quote]

既然硬盘都坏了,你觉得程序还在吗?莫非你的程序安装在内存中?
abc83915 2010-04-14
  • 打赏
  • 举报
回复
楼上的各位谢谢拉...三天之后结贴...有更好的思路的速度顶上.
Alden 2010-04-13
  • 打赏
  • 举报
回复
mac地址也可以修改.
除了硬件加密,软加密不可能做到100%.即时硬件加密也可以被破解掉.
求一个平衡点就可以了.
hzxsasdfgh 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 abc83915 的回复:]
1. 怎么保障这个值只在一台机器上有效使用,移植出去程序不能使用
2. 如何保障只有我能生成合法的值,而客户不行

我有一个程序,安装在客户服务器上,如何能做到以上两点。达到这个程序只有我能控制而客户修改不了目的
[/Quote]
1:第一个问题,可以夸张的认为:先在程序中实现联网功能。!被安装时。记录mac地址。保存到数据库中
当这个值的mac地址改变时。失效
2:自己写了加密类。
(*^__^*) 嘻嘻 !纯属猜测!!
VincentLiang 2010-04-13
  • 打赏
  • 举报
回复
证书,限制私钥导出。
doubleu2005 2010-04-13
  • 打赏
  • 举报
回复
简单点还是MAC地址号操作一点,不知道CPU的序列码怎么得到
加载更多回复(32)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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