请问如何做好 PC 软件在线授权?想了一个比较 Low 的方案,请大家指点。

2019-02-07 16:42:07 +08:00
 kingmo888

首先,没有无法破解的软件,只是破解成本的高低。

web 后台是 django 写的,加了个用户模块。

我设想的是这样的: 1、PC 端有登录功能,登录时从 django 获取帐号的使用期限等各种限制。 2、PC 端会有需要登录其他平台账户的需求,PC 端软件主要功能就是能够对使用者使用其他平台时提供核心支持(举个不恰当例子,其他平台是个计算器的话,本 PC 软件就是帮使用者计算一个微积分之类的)。

PC 端的上目标平台登录的帐号是从 web 拉取的,密码本地输入。

加密方式,PC 端核心支持库采用 web 获取,每次登录临时加载关闭时清除。 使用期限等参数,加密没想好,目前想的是采用 RSA 方式,PC 软件启动时随机生成一组公私钥,然后将公钥与随即参数一并 post 到 web,当 web 获取到后生成授权参数,然后 web 生成一对公私钥,使用 web 私钥将授权参数加密一次,再用 pc 的公钥加密一次,同时将 web 生成的私钥使用 pc 的公钥加密一下,返回处理后的 web 生成的私钥、授权参数。

pc 端获取到后,一次解密 web 私钥,2 次解密授权参数。

由于 rsa 的公私钥都是临时生成,所以基本没有公私钥之分了。。

请问,这样的解密难度怎么样?

有其他方案可以推荐吗?谢谢。

3015 次点击
所在节点    问与答
24 条回复
badcode
2019-02-08 07:36:37 +08:00
@wd 那帖子非常有意思
RqPS6rhmP3Nyn3Tm
2019-02-08 07:43:05 +08:00
核心代码放在服务器
wd
2019-02-08 08:39:42 +08:00
@badcode #21 嗯 是的 我记得还说发现错误之后联系他解决,那哥们好像可以根据错误数据还原…
hotsun168
2019-02-08 22:43:42 +08:00
之前做过这种 PC 软件的验证,上面有人说过的把核心代码放在服务器的方案较好。
我以前做的那个东西,初版程序中只有验证逻辑,被破解后,破解版中整个验证逻辑被完整移除,相当于单机版。后面将部分核心逻辑移到服务器端,每次运算放在服务器进行,再没出现过破解版。
P.S. 服务器被 DDOS 好几天,后面可能觉得搞我没意思了,就没再收到过破解或攻击。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/533322

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX