Windows商店应用程序-让用户通过代码删除试用模式
本文关键字:代码 码删除 模式 用户 应用程序 Windows | 更新日期: 2023-09-27 17:49:42
我开发了一个支持试用模式的应用程序。但现在我需要让一些用户通过激活码获得充分。场景是用户下载试用应用程序,他可以输入应用程序的激活码,然后用户可以使用应用程序的全部功能。
有谁能给我一个建议吗?
您需要考虑如何对代码进行身份验证—我猜您不希望他们通过商店对代码进行身份验证,因此您必须提供一些后端服务来完成此操作。
该服务显然需要将激活码发送给它(您应该将其存储在远程设置中),并且您可能希望发送一个设备唯一ID -您可以为此使用唯一ID。
你的服务应该验证它看到代码的次数,如果它满意,它应该散列代码、设备ID和与应用程序共享的秘密——这需要嵌入到你的应用程序代码中。
对于用户的额外隐私,我建议在将设备唯一ID与共享密钥发送到服务器之前对其进行散列。
你需要将返回的激活码存储在你的应用程序中-并且没有太多的选择-我个人会将此代码存储在LocalSettings区域。
现在在启动时,您需要验证存储的激活码是否有效。如果你有互联网连接,那么你可以通过询问服务代码是否有效来做到这一点,但你必须安排离线检查。这很简单,激活码,加上哈希设备ID对共享密钥的哈希应该等于存储的激活码-根据您的应用程序类型,您可能希望在需要互联网访问之前只允许5个激活(选择一个大的数字,因为这可能真的会惹恼用户)
最后,你需要考虑拥有多个设备的用户——根据商店,你可以在不同设备上为相同的用户安装5个相同的应用程序。为了适应这一点,我们将激活代码存储在远程设置中,因此在启动时检查代码是否存在,如果存在,则自动将代码和设备id发送到您的服务以进行激活。
您需要考虑的唯一一件事是,您究竟如何保护应用程序中的共享秘密?不幸的是,没有太多的选择。这取决于你的应用需要多安全。如果你完全是偏执狂,那么混淆你的代码,但这只是赢得时间。如果你需要更多,那么我建议你发送设备代码,用加密随机随机数散列到你的服务,这将返回你发送的内容,但与秘密散列。不幸的是,这将使激活令牌的离线验证变得不可能,因此您将不得不在不需要互联网连接的宽限期内构建。