1
mzeht 2019-08-21 16:14:44 +08:00
ip 白名单加上密钥校验(如 rsa ) ,第三方需要有和你配对的密钥和报备 ip 来调你的服务
|
2
NoKey OP @mzeht 谢谢回复。ip 这个问题,我就是想问一下,一般部署好的本地服务器或者云服务器,公网 ip 会变动不?经常变的话,就得经常修改配置,这个就很麻烦
|
3
whypool 2019-08-21 16:31:29 +08:00
远程鉴权了
|
6
sujin190 2019-08-21 16:46:58 +08:00
在你的服务器上限制访问 IP 你服务器的来源应该是比较好的了,部署在云的话,谁没事换公网 IP 干嘛,所以一般不变,按照 TCP 协议来说,请求你服务器的 IP 伪造的话,连接就建立不成功了
激活码似乎也不是很靠谱,万一他直接把激活码激活文件数据什么的直接一起拷贝走了,还是一样没用吧 其实我有个问题,既然人家都能把程序拷贝走了自己运行,为啥不能拷贝已经下载下来的文件呢?这好像挺奇怪的,一帮来说,保密要求就只能在线查看才对吧,不过似乎也不能防止拍照。。所以你只要让人看让人下载,防不住吧 |
7
jitongxi 2019-08-21 16:51:03 +08:00
远程 ip,你的服务加上白名单,这是最稳妥的了,当然了,如果别人真的公网 ip 换了, 你这边也要相应操作。
这是无可避免的。 |
8
hyanwang 2019-08-21 17:10:53 +08:00
拿主板,cpu, 硬盘 sn, +网卡 mac,然后 md5 加密
|
9
lihongjie0209 2019-08-21 17:12:27 +08:00
这种东西当然是在你的服务器做认证最好了, 做在客户端麻烦更多
|
10
lff0305 2019-08-21 17:16:32 +08:00
类似强 license 控制么
用 cpuid, mac,硬盘 id 等等等计算一个 hash 服务器启动的时候判断这个 hash 是否匹配 |
11
zjsxwc 2019-08-21 17:30:20 +08:00
让这个服务 S 每天向你服务器 X 发一条随机消息并记录每天收到的第一条消息且返回 M,
然后如果 S 得到 M 与它发的不一致那么就让 S 崩溃, 因为只有别的 S 也在运行才会碰到这种情况 |
13
zjsxwc 2019-08-21 17:53:22 +08:00 via Android
|
14
inwar 2019-08-21 18:18:35 +08:00 via Android 1
跟我现在需求差不多,我的做法是把部分 jar 放在服务器上,程序启动校验后再下载加载类
|
15
NoKey OP @sujin190 有些东西无法防止的,如果能做到要求服务在指定服务器运行,能避免不少问题了,如果服务被拷贝出去随意运行的话,这个就不好说了
|
18
mmdsun 2019-08-21 18:38:15 +08:00 via Android
推荐设置 jar 包加密,启动密码之类的。
Java -jar 启动项目需要输入密码。 但是也防不住别人整个拷贝走,虚拟机克隆之类的。 |
21
hakono 2019-08-21 18:59:01 +08:00 via iPhone
楼主这个需求实际上和软件,游戏防盗版系统的需求没区别
查查看防盗版怎么做不就行了 搞简单点就和服务器的硬件 id 绑定了,比如主板 cpu 内存 id 然后程序内部硬件白名单 id 用 aes 加密下,解密密匙怎么放都随便,反正别一个文本文件塞那就行 然后楼主觉得这么做还是不安全,就搞了个在线认证,动态从服务器拿加密过的 key 之类的,然后发现还是不行,被人反向下可执行程序照样破解,然后楼主就写了个动态加载加密过的程序本体入内存,然后执行程序的启动程序,楼主就这么把别人造了十几年的加壳程序轮子又造了一个,最后发现我做到极致了也就 D 加密那水准,依旧不安全 是的 现实就是这么残酷 ,楼主发现无论怎么努力防盗版系统都是有极限的,所以最后楼主决定:我不写防盗版啦! 最后,楼主把程序写成了在线服务 让用户用账户密码来下数据,做起了一个网络开发工程师 |
22
yiyi11 2019-08-22 09:26:28 +08:00 via Android
@mmdsun 同意。其实跟配置文件的敏感信息(数据库账号密码加密)需求类似。在启动的时候把解密的秘钥输进去,别人无法直接运行这个程序。
|
24
LeeSeoung 2019-08-22 10:15:55 +08:00
只能服务端要求,不单单是 IP 也可以加上其他一些硬件信息然后 hash,服务端验证这个 hash 值,客户端你做再多限制都可以逆向出来,修改从而绕过限制。
|