軟體授權控制,軟體怎樣控制授權

來源:互聯網
上載者:User

軟體授權控制,軟體怎樣控制授權

對於這個app,因為它整合了很多電機效能調校的功能,我們並不希望每個使用者都能使用上,尤其是競爭者,所以只有公司內部人員和客戶才能得到我們的授權,去體驗和調校我們的電機。

那麼,軟體授權的機制是怎樣的?

  • request code的產生:

    通過arc4random()%x擷取0到x-1之間的整數。

    For more detail:www.cnblogs.com/xuling/archive/2012/02/28/2370692.html

  • 產生一個8位隨機申請碼:

NSMutableString requestCode = [NSMutableString stringWithCapacity : 8 ];

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

int a = arc4random()%10;

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

}

  • 在使用者給出request code後,我們通過一定的演算法運算出product key來返回給使用者;
  • App自身也進行相同的運算得到product key,以便與使用者輸入的product key作對比。
  • 使用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中進行簡單軟體授權的要點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.