码迷,mamicode.com
首页 > 其他好文 > 详细

简单的软件授权控制

时间:2015-09-06 12:32:31      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

对于这个app,因为它集成了很多电机性能调校的功能,我们并不希望每个用户都能使用上,尤其是竞争对手,所以只有公司内部人员和客户才能得到我们的授权,去体验和调校我们的电机。

那么,软件授权的机制是怎样的?

  1. 提供用户一个request code,用户使用request code向我们请求product key。

NSMutableString requestCode = [NSMutableString stringWithCapacity : 8 ];

for(int I = 0 ; i < 8 ; i++){

int a = arc4random()%10;

[requestCode appendString : [NSString stringWithFormat:@"%i",a]];

}

  1. Product key校验。
  • 在用户给出request code后,我们通过一定的算法运算出product key来返回给用户;
  • App自身也进行相同的运算得到product key,以便与用户输入的product key作对比。
  1. 用户使用权限的保存。

    把用户是否获得了授权的状态保存起来,以便每次启动的检查。

  • 使用NSUserDefaults对象。

    NSUserDefaults是用来保存、恢复应用程序相关的偏好设置和配置数据的。

[[NSUserDefaults standardUserDefault] setBool: YES forKey :@"haveLicence"]; 即可设置一个key为"haveLicence"的Bool值。

[[NSUserDefaults standerdUserDefault] boolForKey : @"haveLicence"]; 即可获取名为"haveLicence"的键值的Bool值。

Refer to :www.cnblogs.com/heyonggang/p/3663424.html

  • 使用keychain。

    NSUserDefaults只是个像游戏存档一样的东西,游戏删了,存档也就跟着一块删了。为了让用户获得永久授权,而不必在app的卸载重装后去重新申请,要使用keychain。

    Refer to :http://blog.k-res.net/archives/1081.html

  • 在ARC环境下使用操作keychain。

    apple官方所提供的KeychainItemWrapper类对ARC编译环境并不友好。

    此时,当项目为ARC编译环境,要对某个类单独进行非ARC编译,可以在Build Phases – Complie Sources中双击相应的类文件,输入:-fno-objc-ARC。

    Refer to :www.cocoachina.com/ios/20140912/9605.html

    可惜本人进行的尝试并没作用。至于其不起作用的原因,本人尚未查明,如果有朋友知道,希望得到告知和指导!

    最后好不容易找到了一个SSKeychain类,它对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码、账户进行访问,包括读取、删除和设置。

    Refer to :http://my.oschina.net/u/736617/blog/225833

[SSKeychain setPassword :@"haveLicence" forService :@"VID" account:@"ONE" error:nil ]; 这样即可在服务"VID"(这里可以是app的名称,或某种操作、任务的名称),对账户:"ONE"设置password : "haveLicense"。

?

NSString password = [[SSKeychain passwordForService:@"VID" account :@"ONE" error : nil ];即可取出VID中账户为ONE的密码。

?

在这app里面并不是要让用户设置password,而是应用Keychain保存的数据不随app的删除而丢失的特点,当用户得到授权之后,即往账户"ONE"中写入password:"haveLicence";

在app启动时,判定password 是否等于haveLicence来进行权限控制。

?

以上即为我在app中进行简单软件授权的要点。谢谢!

简单的软件授权控制

标签:

原文地址:http://www.cnblogs.com/zhlforhe/p/4785092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!