2012-11-16 173 views
3

我想爲我的應用程序實現安全的基於時間的自動鎖定功能(類似於1password中的自動鎖定功能)。用戶可以在激活鎖定後選擇密碼和時間段(1,2,3,5,10,30分鐘)。基本上我可以在我的設備上寫一個時間戳(加密),並將其與下一次使用的當前時間進行比較。如果增量大於所選時間段,則用戶必須輸入密碼。但是,通過更改設備上的本地時間可以避免此功能。必須有一個安全的方式(例如特殊的系統計時器)才能做到這一點。所以你不能用這種方法來控制1Password。有任何想法嗎?在iOS上實現應用程序的自動鎖定功能

非常感謝

于爾根

回答

0

你應該使用Internet時間服務器。他們正在使用稱爲NTP的標準化協議。 iOS有built-in support for reading NTP server time,但作爲應用程序開發人員無法訪問。要麼你自己實現這個,要麼你可以使用一個開源庫,比如ios-ntp或HS NTP。

+0

如果用戶可以更改系統時間,他甚至可以禁用互聯網連接... ;-) – LombaX

+0

然後你可以嘗試從運營商(通過NITZ)grt。 –

+0

飛機模式:-ppp – LombaX

0

用途:

[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 

現在設置一個計時器:

[NSTimer scheduledTimerWithTimeInterval:240 target:self selector:@selector(disableIdleTimer) userInfo:nil repeats:NO]; 

disableIdleTimer方法設置此:

[[UIApplication sharedApplication] setIdleTimerDisabled:NO]; 

完成!

相關問題