是否可以为每台设备进行一次试用?

roo*_*ook 5 security iphone android

是否有可能提供一种服务,其中对每个设备进行一次免费试用,而个人无法在单个设备上进行多次免费试用.如果它不可能,你知道一种让很难获得多次免费试验的方法.

Lie*_*yan 11

您可以根据设备的唯一ID,请求日期和您自己的私钥生成许可证密钥,以创建仅在特定日期之前有效的许可证.

您的应用程序将通过使用您的公钥解码许可证密钥并比较其到期日期和设备ID来验证许可证密钥是否有效.由于许可证密钥仅对指定日期和给定设备ID有效,因此人们无法伪造伪造请求.

(提示:阅读有关公钥加密的内容)

但是,它并非完全万无一失.一个真正坚定的攻击者可以根植他的设备,并安装一个自定义固件,允许他控制"getDeviceId()"返回的标识符.这不是大多数人愿意做的事情,大多数人宁愿找到另类免费应用程序或只是购买应用程序而不是通过这条路线.对于具有这种决心和技能的破解者,你无能为力.

另一种攻击途径是使用攻击者的私钥/公钥组合替换您随应用程序一起提供的公钥,并且他可以编写可以为伪造应用程序生成许可证密钥的密钥生成器.通过自我验证您自己的可执行文件,您可以使攻击变得困难.

但是,没有安全方案是万无一失的,java/android应用程序可以进行逆向工程,确定的黑客可以伪造您的应用程序并禁用其许可证检查.防止未经授权使用应用程序的唯一万无一失的方法是根本不分发应用程序.